From 22cf67d9ac9b554a6a99e6537c270d6f9f709d2e Mon Sep 17 00:00:00 2001 From: Salakar Date: Thu, 9 Feb 2023 20:26:13 +0000 Subject: [PATCH 01/19] wip draft proposal --- packages/edge_io/proposal.md | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 packages/edge_io/proposal.md diff --git a/packages/edge_io/proposal.md b/packages/edge_io/proposal.md new file mode 100644 index 0000000..d738103 --- /dev/null +++ b/packages/edge_io/proposal.md @@ -0,0 +1,65 @@ +# `edge_io` Package Proposal + +Similar to HttpOverrides, Dart also has a IOOverrides that can be implemented. + +This mainly allows to override implementation of things like file system access or socket/socket server creation in Dart and delegate to your own implementation. + +In the case of `dart_edge` these could delegate to adapters to suite each platforms APIs. + +For example the `edge_io` API could look something like this; + +```dart +import 'dart:io'; + +// Abstract class EdgeIOFileSystemAdapter +import 'adapters/base/file_system_adapter.dart'; +// Abstract class EdgeIOSocketAdapter +import 'adapters/base/socket_adapter.dart'; +// Abstract class EdgeIOStdAdapter +import 'adapters/base/standard_adapter.dart'; + +void enableIOOverrides({ + // FS, e.g. bind to CF R2 or KV, or Deno FS interop. + EdgeIOFileSystemAdapter? fsAdapter, + + // Socket/ServerSocket (e.g. Server Socket bind to WebSocket) + EdgeIOSocketAdapter? socketAdapter, + + // Standard in/out/err adapter (e.g. bind to CF log stream or a Websocket Adapter) + EdgeIOStdAdapter? stdAdapter, +}) { + IOOverrides.global = EdgeIOOverrides( + fsAdapter: fsAdapter, // ??= Or some default like builtin memory adapter. + socketAdapter: socketAdapter, // ??= Or some default like a closed loop adapter. + stdAdapter: stdAdapter // ??= Or some default like a closed loop adapter. + ); +} +``` + +This API could then be used by each platform specific edge package to implement and install their own adapters as part of initialization. For example CloudFlare could do; + +```dart + + +import 'package:cloudflare_workers/cloudflare_workers.dart'; + +void main() { + CloudflareWorkers( + fsAdapter: CloudflareR2FsAdapter(/* options */), + fetch: (request, env, ctx) { + // ... + }, + ); +} + +// Internally `CloudflareWorkers` would call `edge_io.enableIOOverrides` +// and set and enable any provided adapters. +``` + +## Builtin Adapters + +`edge_io` should probably ship with some builtin adapters, some examples of useful adapters are; + +- `MemoryFsAdapter` - an all in memory file system adapter. +- `ZipFsAdapter` - a readonly FS that mounts an Archive +- `ReadOnlyFsAdapter` - not a full implementation, provides an abstract class that only exposes file read methods, any methods that 'write' are pre-stubbed to throw an error. Other adapters such as `ZipFsAdapter` could implement this. From c76451a88bcca7aa85d61fdbfbcb5998a7ee3b43 Mon Sep 17 00:00:00 2001 From: Salakar Date: Thu, 9 Feb 2023 20:29:15 +0000 Subject: [PATCH 02/19] - --- packages/edge_io/proposal.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/edge_io/proposal.md b/packages/edge_io/proposal.md index d738103..763eb10 100644 --- a/packages/edge_io/proposal.md +++ b/packages/edge_io/proposal.md @@ -63,3 +63,13 @@ void main() { - `MemoryFsAdapter` - an all in memory file system adapter. - `ZipFsAdapter` - a readonly FS that mounts an Archive - `ReadOnlyFsAdapter` - not a full implementation, provides an abstract class that only exposes file read methods, any methods that 'write' are pre-stubbed to throw an error. Other adapters such as `ZipFsAdapter` could implement this. +- `DelegatingFsAdapter` - an adapter that can take multiple adapters and bind each to specific paths, e.g.: + +```dart +DelegatingFsAdapter( + { + '/foo/bar': MemoryFsAdapter(), + '/foo/zip': ZipFsAdapter(archive), + } +) +``` From e259fd44b8de39f03b7f11c81e546d1085d71018 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 13 Feb 2023 14:10:05 +0000 Subject: [PATCH 03/19] stub memory file system --- .../cloudflare-durable-objects/pubspec.lock | 6 +- examples/vercel-edge-shelf/pubspec.lock | 6 +- .../cloudflare_workers/example/pubspec.lock | 6 +- packages/cloudflare_workers/pubspec.lock | 4 +- packages/edge_io/CHANGELOG.md | 0 packages/edge_io/LICENSE | 201 ++++++++++ packages/edge_io/README.md | 1 + packages/edge_io/analysis_options.yaml | 24 ++ .../lib/adapters/memory/directory.dart | 43 +++ .../edge_io/lib/adapters/memory/entity.dart | 88 +++++ .../edge_io/lib/adapters/memory/file.dart | 228 +++++++++++ .../lib/adapters/memory/impl/file_impl.dart | 7 + .../adapters/memory/impl/implementation.dart | 1 + .../lib/adapters/memory/memory_adapter.dart | 166 ++++++++ packages/edge_io/lib/edge_io.dart | 1 + packages/edge_io/pubspec.lock | 365 ++++++++++++++++++ packages/edge_io/pubspec.yaml | 14 + packages/edge_io/test/memory_test.dart | 19 + packages/edge_runtime/example/pubspec.lock | 4 +- packages/netlify_edge/example/pubspec.lock | 6 +- packages/netlify_edge/pubspec.lock | 4 +- packages/vercel_edge/example/pubspec.lock | 6 +- packages/vercel_edge/pubspec.lock | 4 +- 23 files changed, 1181 insertions(+), 23 deletions(-) create mode 100644 packages/edge_io/CHANGELOG.md create mode 100644 packages/edge_io/LICENSE create mode 100644 packages/edge_io/README.md create mode 100644 packages/edge_io/analysis_options.yaml create mode 100644 packages/edge_io/lib/adapters/memory/directory.dart create mode 100644 packages/edge_io/lib/adapters/memory/entity.dart create mode 100644 packages/edge_io/lib/adapters/memory/file.dart create mode 100644 packages/edge_io/lib/adapters/memory/impl/file_impl.dart create mode 100644 packages/edge_io/lib/adapters/memory/impl/implementation.dart create mode 100644 packages/edge_io/lib/adapters/memory/memory_adapter.dart create mode 100644 packages/edge_io/lib/edge_io.dart create mode 100644 packages/edge_io/pubspec.lock create mode 100644 packages/edge_io/pubspec.yaml create mode 100644 packages/edge_io/test/memory_test.dart diff --git a/examples/cloudflare-durable-objects/pubspec.lock b/examples/cloudflare-durable-objects/pubspec.lock index 83d0fc0..db8cb3c 100644 --- a/examples/cloudflare-durable-objects/pubspec.lock +++ b/examples/cloudflare-durable-objects/pubspec.lock @@ -63,7 +63,7 @@ packages: path: "../../packages/cloudflare_workers" relative: true source: path - version: "0.0.2" + version: "0.0.2+2" collection: dependency: transitive description: @@ -94,14 +94,14 @@ packages: path: "../../packages/edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct overridden" description: path: "../../packages/edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" freezed_annotation: dependency: transitive description: diff --git a/examples/vercel-edge-shelf/pubspec.lock b/examples/vercel-edge-shelf/pubspec.lock index 28abe5a..091be26 100644 --- a/examples/vercel-edge-shelf/pubspec.lock +++ b/examples/vercel-edge-shelf/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../packages/edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct overridden" description: path: "../../packages/edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" freezed_annotation: dependency: transitive description: @@ -349,7 +349,7 @@ packages: path: "../../packages/vercel_edge" relative: true source: path - version: "0.0.2" + version: "0.0.2+2" vm_service: dependency: transitive description: diff --git a/packages/cloudflare_workers/example/pubspec.lock b/packages/cloudflare_workers/example/pubspec.lock index 56dd706..398fa74 100644 --- a/packages/cloudflare_workers/example/pubspec.lock +++ b/packages/cloudflare_workers/example/pubspec.lock @@ -63,7 +63,7 @@ packages: path: ".." relative: true source: path - version: "0.0.2" + version: "0.0.2+2" collection: dependency: transitive description: @@ -94,14 +94,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct overridden" description: path: "../../edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" freezed_annotation: dependency: transitive description: diff --git a/packages/cloudflare_workers/pubspec.lock b/packages/cloudflare_workers/pubspec.lock index f33128b..b1bc3dd 100644 --- a/packages/cloudflare_workers/pubspec.lock +++ b/packages/cloudflare_workers/pubspec.lock @@ -119,14 +119,14 @@ packages: path: "../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct main" description: path: "../edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" file: dependency: transitive description: diff --git a/packages/edge_io/CHANGELOG.md b/packages/edge_io/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/edge_io/LICENSE b/packages/edge_io/LICENSE new file mode 100644 index 0000000..e006cb1 --- /dev/null +++ b/packages/edge_io/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Invertase Limited + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/packages/edge_io/README.md b/packages/edge_io/README.md new file mode 100644 index 0000000..7d1a56d --- /dev/null +++ b/packages/edge_io/README.md @@ -0,0 +1 @@ +# Edge IO \ No newline at end of file diff --git a/packages/edge_io/analysis_options.yaml b/packages/edge_io/analysis_options.yaml new file mode 100644 index 0000000..2d437f6 --- /dev/null +++ b/packages/edge_io/analysis_options.yaml @@ -0,0 +1,24 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/packages/edge_io/lib/adapters/memory/directory.dart b/packages/edge_io/lib/adapters/memory/directory.dart new file mode 100644 index 0000000..a3f4bf3 --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/directory.dart @@ -0,0 +1,43 @@ +// part of edge_io.memory; + +// class MemoryDirectory extends MemoryFsEntity implements Directory { +// final String _path; +// final Iterable _segments; + +// MemoryDirectory(super.overrides, this._path) : _segments = _path.split('/'); + +// @override +// Future create({bool recursive = false}) async { +// createSync(recursive: recursive); +// return this; +// } + +// @override +// void createSync({bool recursive = false}) { + +// } + +// @override +// Future createTemp([String? prefix]) async { +// return Future.value(createTempSync(prefix)); +// } + +// @override +// Directory createTempSync([String? prefix]) { +// // TODO: implement createTempSync +// } + +// @override +// Stream list( +// {bool recursive = false, bool followLinks = true}) { +// // TODO: implement list +// throw UnimplementedError(); +// } + +// @override +// List listSync( +// {bool recursive = false, bool followLinks = true}) { +// // TODO: implement listSync +// throw UnimplementedError(); +// } +// } diff --git a/packages/edge_io/lib/adapters/memory/entity.dart b/packages/edge_io/lib/adapters/memory/entity.dart new file mode 100644 index 0000000..761b4dc --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/entity.dart @@ -0,0 +1,88 @@ +part of edge_io.memory; + +class MemoryFsEntity implements FileSystemEntity { + final MemoryFsOverrides overrides; + + MemoryFsEntity(this.overrides); + + @override + // TODO: implement absolute + FileSystemEntity get absolute => throw UnimplementedError(); + + @override + Future delete({bool recursive = false}) { + // TODO: implement delete + throw UnimplementedError(); + } + + @override + void deleteSync({bool recursive = false}) { + overrides._entities.remove(path); + } + + @override + Future exists() { + return Future.value(existsSync()); + } + + @override + bool existsSync() { + return overrides._entities.get(path) != null; + } + + @override + bool get isAbsolute => true; + + @override + Directory get parent => throw UnimplementedError(); + + @override + String get path => throw UnimplementedError(); + + @override + Future rename(String newPath) { + // TODO: implement rename + throw UnimplementedError(); + } + + @override + FileSystemEntity renameSync(String newPath) { + // TODO: implement renameSync + throw UnimplementedError(); + } + + @override + Future resolveSymbolicLinks() { + // TODO: implement resolveSymbolicLinks + throw UnimplementedError(); + } + + @override + String resolveSymbolicLinksSync() { + // TODO: implement resolveSymbolicLinksSync + throw UnimplementedError(); + } + + @override + Future stat() { + // TODO: implement stat + throw UnimplementedError(); + } + + @override + FileStat statSync() { + // TODO: implement statSync + throw UnimplementedError(); + } + + @override + // TODO: implement uri + Uri get uri => throw UnimplementedError(); + + @override + Stream watch( + {int events = FileSystemEvent.all, bool recursive = false}) { + // TODO: implement watch + throw UnimplementedError(); + } +} diff --git a/packages/edge_io/lib/adapters/memory/file.dart b/packages/edge_io/lib/adapters/memory/file.dart new file mode 100644 index 0000000..49cf321 --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/file.dart @@ -0,0 +1,228 @@ +part of edge_io.memory; + +class MemoryFile extends MemoryFsEntity implements File { + final String path; + + MemoryFile(super.overrides, this.path); + + @override + Future rename(String newPath) { + return Future.value(renameSync(newPath)); + } + + @override + File renameSync(String newPath) { + final existing = overrides._entities.get(path); + + overrides._entities.remove(path); // Remove the old file. + overrides._entities.set(newPath, existing ?? MemoryFileImplementation()); + return this; + } + + @override + File get absolute => this; + + @override + Future copy(String newPath) { + return Future.value(copySync(newPath)); + } + + @override + File copySync(String newPath) { + final existing = overrides._entities.get(path); + + overrides._entities.set(newPath, existing ?? MemoryFileImplementation()); + return this; + } + + @override + Future create({bool recursive = false, bool exclusive = false}) async { + createSync(recursive: recursive, exclusive: exclusive); + return this; + } + + @override + void createSync({bool recursive = false, bool exclusive = false}) { + throw UnimplementedError('TODO'); + } + + @override + Future lastAccessed() { + return Future.value(lastAccessedSync()); + } + + @override + DateTime lastAccessedSync() { + final file = overrides._entities.get(path); + + if (file == null) { + throw FileSystemException('Cannot access file', path); + } + + return file.lastAccessed; + } + + @override + Future lastModified() { + return Future.value(lastModifiedSync()); + } + + @override + DateTime lastModifiedSync() { + final file = overrides._entities.get(path); + + if (file == null) { + throw FileSystemException('Cannot access file', path); + } + + return file.lastModified; + } + + @override + Future length() { + return Future.value(lengthSync()); + } + + @override + int lengthSync() { + return readAsBytesSync().length; + } + + @override + Future open({FileMode mode = FileMode.read}) { + return Future.value(openSync(mode: mode)); + } + + @override + Stream> openRead([int? start, int? end]) { + final bytes = readAsBytesSync(); + return Stream.value(bytes.sublist(start ?? 0, end)); + } + + @override + RandomAccessFile openSync({FileMode mode = FileMode.read}) { + // TODO: implement openSync + throw UnimplementedError(); + } + + @override + IOSink openWrite({FileMode mode = FileMode.write, Encoding encoding = utf8}) { + // TODO: implement openWrite + throw UnimplementedError(); + } + + @override + Future readAsBytes() { + return Future.value(readAsBytesSync()); + } + + @override + Uint8List readAsBytesSync() { + final file = overrides._entities.get(path); + + if (file is MemoryFileImplementation) { + return Uint8List.fromList(file.bytes); + } + + throw FileSystemException('File does not exist', path); + } + + @override + Future> readAsLines({Encoding encoding = utf8}) { + return Future.value(readAsLinesSync(encoding: encoding)); + } + + @override + List readAsLinesSync({Encoding encoding = utf8}) { + final value = readAsStringSync(encoding: encoding); + return LineSplitter.split(value).toList(); + } + + @override + Future readAsString({Encoding encoding = utf8}) { + return Future.value(readAsStringSync(encoding: encoding)); + } + + @override + String readAsStringSync({Encoding encoding = utf8}) { + return utf8.decode(readAsBytesSync()); + } + + @override + Future setLastAccessed(DateTime time) async { + setLastAccessedSync(time); + } + + @override + void setLastAccessedSync(DateTime time) { + final file = overrides._entities.get(path); + + if (file == null) { + throw FileSystemException('Cannot access file', path); + } + + file.lastAccessed = time; + } + + @override + Future setLastModified(DateTime time) async { + setLastModifiedSync(time); + } + + @override + void setLastModifiedSync(DateTime time) { + final file = overrides._entities.get(path); + + if (file == null) { + throw FileSystemException('Cannot access file', path); + } + + file.lastAccessed = time; + } + + @override + Future writeAsBytes(List bytes, + {FileMode mode = FileMode.write, bool flush = false}) { + writeAsBytesSync(bytes, mode: mode, flush: flush); + return Future.value(this); + } + + @override + void writeAsBytesSync(List bytes, + {FileMode mode = FileMode.write, bool flush = false}) { + // TODO - handle `flush` + final existing = overrides._entities.get(path); + + final file = existing ?? MemoryFileImplementation(); + + switch (mode) { + case FileMode.write: + case FileMode.writeOnly: + file.bytes = bytes; + break; + case FileMode.append: + case FileMode.writeOnlyAppend: + file.bytes.addAll(bytes); + break; + } + + overrides._entities.set(path, file); + } + + @override + Future writeAsString(String contents, + {FileMode mode = FileMode.write, + Encoding encoding = utf8, + bool flush = false}) { + writeAsStringSync(contents, mode: mode, encoding: encoding, flush: flush); + return Future.value(this); + } + + @override + void writeAsStringSync(String contents, + {FileMode mode = FileMode.write, + Encoding encoding = utf8, + bool flush = false}) { + writeAsBytesSync(utf8.encode(contents), mode: mode, flush: flush); + } +} diff --git a/packages/edge_io/lib/adapters/memory/impl/file_impl.dart b/packages/edge_io/lib/adapters/memory/impl/file_impl.dart new file mode 100644 index 0000000..382057d --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/impl/file_impl.dart @@ -0,0 +1,7 @@ +import 'implementation.dart'; + +class MemoryFileImplementation extends MemoryFsImplementation { + List bytes = []; + DateTime lastAccessed = DateTime.now(); + DateTime lastModified = DateTime.now(); +} diff --git a/packages/edge_io/lib/adapters/memory/impl/implementation.dart b/packages/edge_io/lib/adapters/memory/impl/implementation.dart new file mode 100644 index 0000000..516b6fc --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/impl/implementation.dart @@ -0,0 +1 @@ +abstract class MemoryFsImplementation {} diff --git a/packages/edge_io/lib/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/adapters/memory/memory_adapter.dart new file mode 100644 index 0000000..b674906 --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/memory_adapter.dart @@ -0,0 +1,166 @@ +library edge_io.memory; + +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; +import 'package:path/path.dart' as p; +import 'impl/implementation.dart'; +import 'impl/file_impl.dart'; + +part 'entity.dart'; +// part 'directory.dart'; +part 'file.dart'; + +class MemoryFsOverrides extends IOOverrides { + final Entities _entities; + + MemoryFsOverrides({ + String? basePath, + }) : _entities = Entities(basePath ?? '/'); + + @override + Directory createDirectory(String path) { + // return MemoryDirectory(this, path); + throw UnimplementedError(); + } + + @override + File createFile(String path) { + return MemoryFile(this, path); + } + + @override + Link createLink(String path) { + // TODO: implement createLink + throw UnimplementedError(); + } + + @override + Stream fsWatch(String path, int events, bool recursive) { + // TODO: implement fsWatch + throw UnimplementedError(); + } + + @override + bool fsWatchIsSupported() { + // TODO: implement fsWatchIsSupported + throw UnimplementedError(); + } + + @override + Future fseGetType(String path, bool followLinks) { + // TODO: implement fseGetType + throw UnimplementedError(); + } + + @override + FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { + // TODO: implement fseGetTypeSync + throw UnimplementedError(); + } + + @override + Future fseIdentical(String path1, String path2) { + // TODO: implement fseIdentical + throw UnimplementedError(); + } + + @override + bool fseIdenticalSync(String path1, String path2) { + // TODO: implement fseIdenticalSync + throw UnimplementedError(); + } + + @override + Directory getCurrentDirectory() { + // TODO: implement getCurrentDirectory + throw UnimplementedError(); + } + + @override + Directory getSystemTempDirectory() { + // TODO: implement getSystemTempDirectory + throw UnimplementedError(); + } + + @override + Future serverSocketBind(address, int port, + {int backlog = 0, bool v6Only = false, bool shared = false}) { + // TODO: implement serverSocketBind + throw UnimplementedError(); + } + + @override + void setCurrentDirectory(String path) { + // TODO: implement setCurrentDirectory + } + + @override + Future socketConnect(host, int port, + {sourceAddress, int sourcePort = 0, Duration? timeout}) { + // TODO: implement socketConnect + throw UnimplementedError(); + } + + @override + Future> socketStartConnect(host, int port, + {sourceAddress, int sourcePort = 0}) { + // TODO: implement socketStartConnect + throw UnimplementedError(); + } + + @override + Future stat(String path) { + // TODO: implement stat + throw UnimplementedError(); + } + + @override + FileStat statSync(String path) { + // TODO: implement statSync + throw UnimplementedError(); + } + + @override + Stdout get stderr => throw UnimplementedError(); + + @override + Stdin get stdin => throw UnimplementedError(); + + @override + Stdout get stdout => throw UnimplementedError(); +} + +class Entities { + final String basePath; + + Entities(this.basePath); + + Map _entities = {}; + + String join(String path) { + return p.join(basePath, path); + } + + void remove(String path) { + _entities.remove(join(path)); + } + + void set(String path, MemoryFsImplementation impl) { + _entities[join(path)] = impl; + } + + T? get(String path) { + final impl = _entities[join(path)]; + + if (impl == null) { + return null; + } + + if (impl is! T) { + throw FileSystemException('Entity at path is not a ${T.runtimeType}', path); + } + + return impl; + } +} diff --git a/packages/edge_io/lib/edge_io.dart b/packages/edge_io/lib/edge_io.dart new file mode 100644 index 0000000..57595f8 --- /dev/null +++ b/packages/edge_io/lib/edge_io.dart @@ -0,0 +1 @@ +export 'adapters/memory/memory_adapter.dart'; diff --git a/packages/edge_io/pubspec.lock b/packages/edge_io/pubspec.lock new file mode 100644 index 0000000..feaa367 --- /dev/null +++ b/packages/edge_io/pubspec.lock @@ -0,0 +1,365 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201" + url: "https://pub.dev" + source: hosted + version: "52.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4 + url: "https://pub.dev" + source: hosted + version: "5.4.0" + args: + dependency: transitive + description: + name: args + sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + async: + dependency: transitive + description: + name: async + sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + url: "https://pub.dev" + source: hosted + version: "2.10.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" + source: hosted + version: "1.17.1" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + coverage: + dependency: transitive + description: + name: coverage + sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" + url: "https://pub.dev" + source: hosted + version: "1.6.3" + crypto: + dependency: transitive + description: + name: crypto + sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + url: "https://pub.dev" + source: hosted + version: "3.0.2" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + glob: + dependency: transitive + description: + name: glob + sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + logging: + dependency: transitive + description: + name: logging + sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 + url: "https://pub.dev" + source: hosted + version: "0.12.14" + meta: + dependency: transitive + description: + name: meta + sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + mime: + dependency: transitive + description: + name: mime + sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + url: "https://pub.dev" + source: hosted + version: "1.0.4" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: "direct main" + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + shelf: + dependency: transitive + description: + name: shelf + sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + url: "https://pub.dev" + source: hosted + version: "1.4.0" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c + url: "https://pub.dev" + source: hosted + version: "1.1.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + url: "https://pub.dev" + source: hosted + version: "1.0.3" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427" + url: "https://pub.dev" + source: hosted + version: "0.10.11" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test: + dependency: "direct dev" + description: + name: test + sha256: "5301f54eb6fe945daa99bc8df6ece3f88b5ceaa6f996f250efdaaf63e22886be" + url: "https://pub.dev" + source: hosted + version: "1.23.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" + url: "https://pub.dev" + source: hosted + version: "0.4.18" + test_core: + dependency: transitive + description: + name: test_core + sha256: d2e9240594b409565524802b84b7b39341da36dd6fd8e1660b53ad928ec3e9af + url: "https://pub.dev" + source: hosted + version: "0.4.24" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: a4040e9852e56bf8a3c5a2e08a56f6facd76e75500cf2a922ce5d52394c4998a + url: "https://pub.dev" + source: hosted + version: "11.0.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b + url: "https://pub.dev" + source: hosted + version: "2.3.0" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + url: "https://pub.dev" + source: hosted + version: "3.1.1" +sdks: + dart: ">=2.19.0 <4.0.0" diff --git a/packages/edge_io/pubspec.yaml b/packages/edge_io/pubspec.yaml new file mode 100644 index 0000000..feb86ec --- /dev/null +++ b/packages/edge_io/pubspec.yaml @@ -0,0 +1,14 @@ +name: edge_io +description: IO implementations for Dart Edge. +homepage: https://dartedge.dev +repository: https://github.com/invertase/dart_edge/tree/main/packages/edge_io +version: 0.0.1 + +environment: + sdk: ">=2.18.5 <3.0.0" + +dependencies: + path: ^1.8.3 + +dev_dependencies: + test: ^1.23.1 \ No newline at end of file diff --git a/packages/edge_io/test/memory_test.dart b/packages/edge_io/test/memory_test.dart new file mode 100644 index 0000000..955044a --- /dev/null +++ b/packages/edge_io/test/memory_test.dart @@ -0,0 +1,19 @@ +import 'dart:io'; + +import 'package:test/test.dart'; +import 'package:edge_io/edge_io.dart' show MemoryFsOverrides; + +void main() { + IOOverrides.global = MemoryFsOverrides(); + + group('MemoryFsOverrides', () { + test('it copies a file to another location', () { + final file1 = File('file1.txt'); + + file1.writeAsStringSync('foo'); + file1.copySync('file2.txt'); + + expect(File('file2.txt').readAsStringSync(), 'foo'); + }); + }); +} diff --git a/packages/edge_runtime/example/pubspec.lock b/packages/edge_runtime/example/pubspec.lock index bc20e2a..1a86994 100644 --- a/packages/edge_runtime/example/pubspec.lock +++ b/packages/edge_runtime/example/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct main" description: path: ".." relative: true source: path - version: "0.0.1" + version: "0.0.1+2" freezed_annotation: dependency: transitive description: diff --git a/packages/netlify_edge/example/pubspec.lock b/packages/netlify_edge/example/pubspec.lock index de15b10..ee5c5c1 100644 --- a/packages/netlify_edge/example/pubspec.lock +++ b/packages/netlify_edge/example/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct overridden" description: path: "../../edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" freezed_annotation: dependency: transitive description: @@ -205,7 +205,7 @@ packages: path: ".." relative: true source: path - version: "0.0.1-dev.1" + version: "0.0.1-dev.3" path: dependency: transitive description: diff --git a/packages/netlify_edge/pubspec.lock b/packages/netlify_edge/pubspec.lock index fc15831..aa42fb7 100644 --- a/packages/netlify_edge/pubspec.lock +++ b/packages/netlify_edge/pubspec.lock @@ -119,14 +119,14 @@ packages: path: "../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct main" description: path: "../edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" file: dependency: transitive description: diff --git a/packages/vercel_edge/example/pubspec.lock b/packages/vercel_edge/example/pubspec.lock index 3c65a7f..d73e527 100644 --- a/packages/vercel_edge/example/pubspec.lock +++ b/packages/vercel_edge/example/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct overridden" description: path: "../../edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" freezed_annotation: dependency: transitive description: @@ -349,7 +349,7 @@ packages: path: ".." relative: true source: path - version: "0.0.2" + version: "0.0.2+2" vm_service: dependency: transitive description: diff --git a/packages/vercel_edge/pubspec.lock b/packages/vercel_edge/pubspec.lock index deb665b..f16a848 100644 --- a/packages/vercel_edge/pubspec.lock +++ b/packages/vercel_edge/pubspec.lock @@ -119,14 +119,14 @@ packages: path: "../edge" relative: true source: path - version: "0.0.2" + version: "0.0.3" edge_runtime: dependency: "direct main" description: path: "../edge_runtime" relative: true source: path - version: "0.0.1" + version: "0.0.1+2" file: dependency: transitive description: From 32bc2dc52e6cf7b1380095789cf5e7e470a74c08 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 14 Feb 2023 17:00:04 +0000 Subject: [PATCH 04/19] - --- .../cloudflare-durable-objects/pubspec.lock | 6 +- examples/vercel-edge-shelf/pubspec.lock | 6 +- .../cloudflare_workers/example/pubspec.lock | 6 +- packages/cloudflare_workers/pubspec.lock | 4 +- .../edge_io/lib/adapters/memory/file.dart | 100 ++++++++++-- .../lib/adapters/memory/memory_adapter.dart | 13 +- packages/edge_io/test/_playground.dart | 61 ++++++++ packages/edge_io/test/memory_test.dart | 148 +++++++++++++++++- packages/edge_runtime/example/pubspec.lock | 4 +- packages/netlify_edge/example/pubspec.lock | 6 +- packages/netlify_edge/pubspec.lock | 4 +- packages/vercel_edge/example/pubspec.lock | 6 +- packages/vercel_edge/pubspec.lock | 4 +- 13 files changed, 325 insertions(+), 43 deletions(-) create mode 100644 packages/edge_io/test/_playground.dart diff --git a/examples/cloudflare-durable-objects/pubspec.lock b/examples/cloudflare-durable-objects/pubspec.lock index db8cb3c..1130c69 100644 --- a/examples/cloudflare-durable-objects/pubspec.lock +++ b/examples/cloudflare-durable-objects/pubspec.lock @@ -63,7 +63,7 @@ packages: path: "../../packages/cloudflare_workers" relative: true source: path - version: "0.0.2+2" + version: "0.0.2+4" collection: dependency: transitive description: @@ -94,14 +94,14 @@ packages: path: "../../packages/edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct overridden" description: path: "../../packages/edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" freezed_annotation: dependency: transitive description: diff --git a/examples/vercel-edge-shelf/pubspec.lock b/examples/vercel-edge-shelf/pubspec.lock index 091be26..7b3f41c 100644 --- a/examples/vercel-edge-shelf/pubspec.lock +++ b/examples/vercel-edge-shelf/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../packages/edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct overridden" description: path: "../../packages/edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" freezed_annotation: dependency: transitive description: @@ -349,7 +349,7 @@ packages: path: "../../packages/vercel_edge" relative: true source: path - version: "0.0.2+2" + version: "0.0.2+4" vm_service: dependency: transitive description: diff --git a/packages/cloudflare_workers/example/pubspec.lock b/packages/cloudflare_workers/example/pubspec.lock index 398fa74..5fb587d 100644 --- a/packages/cloudflare_workers/example/pubspec.lock +++ b/packages/cloudflare_workers/example/pubspec.lock @@ -63,7 +63,7 @@ packages: path: ".." relative: true source: path - version: "0.0.2+2" + version: "0.0.2+4" collection: dependency: transitive description: @@ -94,14 +94,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct overridden" description: path: "../../edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" freezed_annotation: dependency: transitive description: diff --git a/packages/cloudflare_workers/pubspec.lock b/packages/cloudflare_workers/pubspec.lock index ea526fd..4ecb03d 100644 --- a/packages/cloudflare_workers/pubspec.lock +++ b/packages/cloudflare_workers/pubspec.lock @@ -119,14 +119,14 @@ packages: path: "../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct main" description: path: "../edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" file: dependency: transitive description: diff --git a/packages/edge_io/lib/adapters/memory/file.dart b/packages/edge_io/lib/adapters/memory/file.dart index 49cf321..a9125c8 100644 --- a/packages/edge_io/lib/adapters/memory/file.dart +++ b/packages/edge_io/lib/adapters/memory/file.dart @@ -1,9 +1,28 @@ part of edge_io.memory; +/// A file in the memory file system. class MemoryFile extends MemoryFsEntity implements File { + /// The path to the file. final String path; - MemoryFile(super.overrides, this.path); + /// Creates a new file. + MemoryFile._(super.overrides, this.path); + + /// Cached list of segments in the path. + List? _cachedSegments; + + /// Returns the segments in the path. + List get _segments => _cachedSegments ??= path.split('/'); + + /// Returns the parent node of the file. + MemoryFsImplementation? get _parentNode { + if (_segments.length == 1) { + return null; + } + + final parentPath = _segments.sublist(0, _segments.length - 1).join('/'); + return overrides._entities.get(parentPath); + } @override Future rename(String newPath) { @@ -14,11 +33,21 @@ class MemoryFile extends MemoryFsEntity implements File { File renameSync(String newPath) { final existing = overrides._entities.get(path); + if (existing == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Cannot rename file to '$newPath", + ); + } + overrides._entities.remove(path); // Remove the old file. - overrides._entities.set(newPath, existing ?? MemoryFileImplementation()); - return this; + overrides._entities.set(newPath, existing); + + return MemoryFile._(overrides, newPath); } + // TODO should this use Directory.current, which uses basePath? @override File get absolute => this; @@ -31,8 +60,16 @@ class MemoryFile extends MemoryFsEntity implements File { File copySync(String newPath) { final existing = overrides._entities.get(path); - overrides._entities.set(newPath, existing ?? MemoryFileImplementation()); - return this; + if (existing == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Cannot copy file to '$newPath", + ); + } + + overrides._entities.set(newPath, existing); + return MemoryFile._(overrides, newPath); } @override @@ -43,7 +80,28 @@ class MemoryFile extends MemoryFsEntity implements File { @override void createSync({bool recursive = false, bool exclusive = false}) { - throw UnimplementedError('TODO'); + // If recursive is false, we should check whether this file has a parent, + // and if not, throw an error. + if (!recursive && _segments.length > 1 && _parentNode == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Cannot create file at '$path", + ); + } + + final existing = overrides._entities.get(path); + + // If the file exists, and we're in exclusive mode, throw an error. + if (existing != null && exclusive) { + throw FileSystemException( + "Cannot create file", + path, + OSError("File exists", 17), + ); + } + + overrides._entities.set(path, MemoryFileImplementation()); } @override @@ -56,7 +114,11 @@ class MemoryFile extends MemoryFsEntity implements File { final file = overrides._entities.get(path); if (file == null) { - throw FileSystemException('Cannot access file', path); + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Cannot retrieve access time", + ); } return file.lastAccessed; @@ -72,7 +134,11 @@ class MemoryFile extends MemoryFsEntity implements File { final file = overrides._entities.get(path); if (file == null) { - throw FileSystemException('Cannot access file', path); + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Cannot retrieve modification time", + ); } return file.lastModified; @@ -118,6 +184,7 @@ class MemoryFile extends MemoryFsEntity implements File { @override Uint8List readAsBytesSync() { + // TODO: This should probably use open()? final file = overrides._entities.get(path); if (file is MemoryFileImplementation) { @@ -158,7 +225,11 @@ class MemoryFile extends MemoryFsEntity implements File { final file = overrides._entities.get(path); if (file == null) { - throw FileSystemException('Cannot access file', path); + throw FileSystemException( + 'Failed to set file access time', + path, + OSError('No such file or directory', 2), + ); } file.lastAccessed = time; @@ -174,10 +245,14 @@ class MemoryFile extends MemoryFsEntity implements File { final file = overrides._entities.get(path); if (file == null) { - throw FileSystemException('Cannot access file', path); + throw FileSystemException( + 'Failed to set file modification time', + path, + OSError('No such file or directory', 2), + ); } - file.lastAccessed = time; + file.lastModified = time; } @override @@ -190,9 +265,10 @@ class MemoryFile extends MemoryFsEntity implements File { @override void writeAsBytesSync(List bytes, {FileMode mode = FileMode.write, bool flush = false}) { - // TODO - handle `flush` final existing = overrides._entities.get(path); + // TODO try open the file - it should error if it can't + final file = existing ?? MemoryFileImplementation(); switch (mode) { diff --git a/packages/edge_io/lib/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/adapters/memory/memory_adapter.dart index b674906..44c562a 100644 --- a/packages/edge_io/lib/adapters/memory/memory_adapter.dart +++ b/packages/edge_io/lib/adapters/memory/memory_adapter.dart @@ -18,6 +18,10 @@ class MemoryFsOverrides extends IOOverrides { String? basePath, }) : _entities = Entities(basePath ?? '/'); + void clear() { + _entities.clear(); + } + @override Directory createDirectory(String path) { // return MemoryDirectory(this, path); @@ -26,7 +30,7 @@ class MemoryFsOverrides extends IOOverrides { @override File createFile(String path) { - return MemoryFile(this, path); + return MemoryFile._(this, path); } @override @@ -138,6 +142,10 @@ class Entities { Map _entities = {}; + void clear() { + _entities.clear(); + } + String join(String path) { return p.join(basePath, path); } @@ -158,7 +166,8 @@ class Entities { } if (impl is! T) { - throw FileSystemException('Entity at path is not a ${T.runtimeType}', path); + throw FileSystemException( + 'Entity at path is not a ${T.runtimeType}', path); } return impl; diff --git a/packages/edge_io/test/_playground.dart b/packages/edge_io/test/_playground.dart new file mode 100644 index 0000000..3f7ea3a --- /dev/null +++ b/packages/edge_io/test/_playground.dart @@ -0,0 +1,61 @@ +import 'dart:io'; +import 'package:path/path.dart' as p; + +File tempFile(File file) { + final tmp = Directory.systemTemp.createTempSync(); + return File(p.join(tmp.path, file.path)); +} + +void main() async { + await absolute(); + // await copy(); + // await create(); + // await metadata(); + // await read(); +} + +Future absolute() async { + final file1 = File('file1.txt'); + print(file1.absolute.path); +} + +Future rename() async { + final file1 = tempFile(File('file1.txt')); + await file1.create(); + final file2 = await file1.rename('newPath.txt'); + print(file1.path); + print(file2.path); +} + +Future copy() async { + final file1 = tempFile(File('file1.txt')); + await file1.create(); + final file2 = await file1.copySync('newPath.txt'); + print(file1.path); + print(file2.path); +} + +Future create() async { + final file1 = tempFile(File('foo/file1.txt')); + await file1.create(recursive: true); + await file1.create(exclusive: true); + print(file1.path); +} + +Future metadata() async { + final file1 = tempFile(File('file1.txt')); + // await file1.create(recursive: true); + // file1.setLastAccessedSync(DateTime.now()); + file1.setLastModifiedSync(DateTime.now()); + // print(file1.lastAccessedSync()); + print(file1.lastModifiedSync()); + await file1.setLastAccessed(DateTime.now()); + print(file1.path); +} + +Future read() async { + final file1 = tempFile(File('foo/file1.txt')); + // await file1.create(recursive: true); + await file1.writeAsString('Hello World'); + print(await file1.readAsString()); +} diff --git a/packages/edge_io/test/memory_test.dart b/packages/edge_io/test/memory_test.dart index 955044a..09f04c5 100644 --- a/packages/edge_io/test/memory_test.dart +++ b/packages/edge_io/test/memory_test.dart @@ -4,16 +4,152 @@ import 'package:test/test.dart'; import 'package:edge_io/edge_io.dart' show MemoryFsOverrides; void main() { - IOOverrides.global = MemoryFsOverrides(); + final overrides = MemoryFsOverrides(); + IOOverrides.global = overrides; + + setUp(() { + overrides.clear(); + }); group('MemoryFsOverrides', () { - test('it copies a file to another location', () { - final file1 = File('file1.txt'); + group('File', () { + group('rename', () { + test('it renames a file and removes the original', () { + final file1 = File('file1.txt'); + + file1.writeAsStringSync('foo'); + final renamed = file1.renameSync('file2.txt'); + + expect(renamed.path, 'file2.txt'); + expect(renamed.readAsStringSync(), 'foo'); + expect(file1.existsSync(), false); + }); + + test('it errors when renaming if the file does not exist', () { + final file1 = File('file1.txt'); + + expect( + () => file1.renameSync('foo.txt'), + throwsA(TypeMatcher()), + ); + }); + }); + + group('copy', () { + test('it copies a file to another location', () { + final file1 = File('file1.txt'); + + file1.writeAsStringSync('foo'); + final copy = file1.copySync('file2.txt'); + + expect(copy.path, 'file2.txt'); + expect(copy.readAsStringSync(), 'foo'); + expect(file1.existsSync(), true); + }); + + test('it errors when copying if the file does not exist', () { + final file1 = File('file1.txt'); + + expect( + () => file1.copySync('foo.txt'), + throwsA(TypeMatcher()), + ); + }); + }); + + group('lastAccessed', () { + test('it gets the last accessed time', () { + final file1 = File('file1.txt'); + file1.createSync(); + expect(file1.lastAccessedSync(), isA()); + }); + + test( + 'it should throw if last accessed time is called but no file exists', + () { + final file1 = File('file1.txt'); + + expect( + () => file1.lastAccessedSync(), + throwsA(TypeMatcher()), + ); + }); + + test('it should set last active time', () { + final file1 = File('file1.txt'); + file1.createSync(); + final time = DateTime.now().subtract(Duration(days: 1)); + file1.setLastAccessedSync(time); + expect(file1.lastAccessedSync(), time); + }); + + test( + 'it should throw if set last active time is set but no file exists', + () { + expect( + () => File('file1.txt').setLastAccessedSync(DateTime.now()), + throwsA(TypeMatcher()), + ); + }); + + test( + 'it should throw if last accessed time is called but no file exists', + () { + final file1 = File('file1.txt'); + + expect( + () => file1.lastAccessedSync(), + throwsA(TypeMatcher()), + ); + }); + }); + + group('lastModified', () { + test('it gets the last modified time', () { + final file1 = File('file1.txt'); + file1.createSync(); + expect(file1.lastModifiedSync(), isA()); + }); + + test( + 'it should throw if last modified time is called but no file exists', + () { + final file1 = File('file1.txt'); + + expect( + () => file1.lastModifiedSync(), + throwsA(TypeMatcher()), + ); + }); + + test('it should set last modified time', () { + final file1 = File('file1.txt'); + file1.createSync(); + final time = DateTime.now().subtract(Duration(days: 1)); + file1.setLastModifiedSync(time); + expect(file1.lastModifiedSync(), time); + }); + + test( + 'it should throw if set last modified time is set but no file exists', + () { + expect( + () => File('file1.txt').setLastModifiedSync(DateTime.now()), + throwsA(TypeMatcher()), + ); + }); - file1.writeAsStringSync('foo'); - file1.copySync('file2.txt'); + test( + 'it should throw if last modified time is called but no file exists', + () { + final file1 = File('file1.txt'); - expect(File('file2.txt').readAsStringSync(), 'foo'); + expect( + () => file1.lastModifiedSync(), + throwsA(TypeMatcher()), + ); + }); + }); }); }); } diff --git a/packages/edge_runtime/example/pubspec.lock b/packages/edge_runtime/example/pubspec.lock index 1a86994..2f0a2a9 100644 --- a/packages/edge_runtime/example/pubspec.lock +++ b/packages/edge_runtime/example/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct main" description: path: ".." relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" freezed_annotation: dependency: transitive description: diff --git a/packages/netlify_edge/example/pubspec.lock b/packages/netlify_edge/example/pubspec.lock index ee5c5c1..340bb98 100644 --- a/packages/netlify_edge/example/pubspec.lock +++ b/packages/netlify_edge/example/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct overridden" description: path: "../../edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" freezed_annotation: dependency: transitive description: @@ -205,7 +205,7 @@ packages: path: ".." relative: true source: path - version: "0.0.1-dev.3" + version: "0.0.1-dev.5" path: dependency: transitive description: diff --git a/packages/netlify_edge/pubspec.lock b/packages/netlify_edge/pubspec.lock index aa42fb7..a3ac012 100644 --- a/packages/netlify_edge/pubspec.lock +++ b/packages/netlify_edge/pubspec.lock @@ -119,14 +119,14 @@ packages: path: "../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct main" description: path: "../edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" file: dependency: transitive description: diff --git a/packages/vercel_edge/example/pubspec.lock b/packages/vercel_edge/example/pubspec.lock index d73e527..dea6771 100644 --- a/packages/vercel_edge/example/pubspec.lock +++ b/packages/vercel_edge/example/pubspec.lock @@ -87,14 +87,14 @@ packages: path: "../../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct overridden" description: path: "../../edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" freezed_annotation: dependency: transitive description: @@ -349,7 +349,7 @@ packages: path: ".." relative: true source: path - version: "0.0.2+2" + version: "0.0.2+4" vm_service: dependency: transitive description: diff --git a/packages/vercel_edge/pubspec.lock b/packages/vercel_edge/pubspec.lock index f16a848..22341ad 100644 --- a/packages/vercel_edge/pubspec.lock +++ b/packages/vercel_edge/pubspec.lock @@ -119,14 +119,14 @@ packages: path: "../edge" relative: true source: path - version: "0.0.3" + version: "0.0.4" edge_runtime: dependency: "direct main" description: path: "../edge_runtime" relative: true source: path - version: "0.0.1+2" + version: "0.0.1+3" file: dependency: transitive description: From d70930bcd65fb442d16f80e3f9f02b9afb90ac59 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Wed, 15 Feb 2023 15:29:44 +0000 Subject: [PATCH 05/19] - --- .../cloudflare-durable-objects/pubspec.lock | 2 +- examples/vercel-edge-shelf/pubspec.lock | 2 +- .../cloudflare_workers/example/pubspec.lock | 2 +- packages/cloudflare_workers/pubspec.lock | 2 +- packages/edge/pubspec.lock | 2 +- .../lib/adapters/memory/directory.dart | 94 ++++++++++--------- .../edge_io/lib/adapters/memory/entity.dart | 22 ++++- .../edge_io/lib/adapters/memory/file.dart | 21 +---- .../adapters/memory/impl/directory_impl.dart | 3 + .../lib/adapters/memory/memory_adapter.dart | 5 +- packages/edge_io/pubspec.lock | 10 +- packages/edge_io/pubspec.yaml | 1 + packages/edge_runtime/example/pubspec.lock | 2 +- packages/edge_runtime/pubspec.lock | 2 +- packages/netlify_edge/example/pubspec.lock | 2 +- packages/netlify_edge/pubspec.lock | 2 +- packages/vercel_edge/example/pubspec.lock | 2 +- packages/vercel_edge/pubspec.lock | 2 +- 18 files changed, 96 insertions(+), 82 deletions(-) create mode 100644 packages/edge_io/lib/adapters/memory/impl/directory_impl.dart diff --git a/examples/cloudflare-durable-objects/pubspec.lock b/examples/cloudflare-durable-objects/pubspec.lock index 1130c69..c7b9cd9 100644 --- a/examples/cloudflare-durable-objects/pubspec.lock +++ b/examples/cloudflare-durable-objects/pubspec.lock @@ -343,4 +343,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/examples/vercel-edge-shelf/pubspec.lock b/examples/vercel-edge-shelf/pubspec.lock index 7b3f41c..ef636dc 100644 --- a/examples/vercel-edge-shelf/pubspec.lock +++ b/examples/vercel-edge-shelf/pubspec.lock @@ -375,4 +375,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/cloudflare_workers/example/pubspec.lock b/packages/cloudflare_workers/example/pubspec.lock index 5fb587d..9955f3a 100644 --- a/packages/cloudflare_workers/example/pubspec.lock +++ b/packages/cloudflare_workers/example/pubspec.lock @@ -343,4 +343,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/cloudflare_workers/pubspec.lock b/packages/cloudflare_workers/pubspec.lock index 4ecb03d..f8544ff 100644 --- a/packages/cloudflare_workers/pubspec.lock +++ b/packages/cloudflare_workers/pubspec.lock @@ -544,4 +544,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge/pubspec.lock b/packages/edge/pubspec.lock index 0be644d..7c353db 100644 --- a/packages/edge/pubspec.lock +++ b/packages/edge/pubspec.lock @@ -306,4 +306,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge_io/lib/adapters/memory/directory.dart b/packages/edge_io/lib/adapters/memory/directory.dart index a3f4bf3..6320901 100644 --- a/packages/edge_io/lib/adapters/memory/directory.dart +++ b/packages/edge_io/lib/adapters/memory/directory.dart @@ -1,43 +1,51 @@ -// part of edge_io.memory; - -// class MemoryDirectory extends MemoryFsEntity implements Directory { -// final String _path; -// final Iterable _segments; - -// MemoryDirectory(super.overrides, this._path) : _segments = _path.split('/'); - -// @override -// Future create({bool recursive = false}) async { -// createSync(recursive: recursive); -// return this; -// } - -// @override -// void createSync({bool recursive = false}) { - -// } - -// @override -// Future createTemp([String? prefix]) async { -// return Future.value(createTempSync(prefix)); -// } - -// @override -// Directory createTempSync([String? prefix]) { -// // TODO: implement createTempSync -// } - -// @override -// Stream list( -// {bool recursive = false, bool followLinks = true}) { -// // TODO: implement list -// throw UnimplementedError(); -// } - -// @override -// List listSync( -// {bool recursive = false, bool followLinks = true}) { -// // TODO: implement listSync -// throw UnimplementedError(); -// } -// } +part of edge_io.memory; + +class MemoryDirectory extends MemoryFsEntity implements Directory { + MemoryDirectory._(super.overrides, super.path); + + @override + Future rename(String newPath) { + return Future.value(renameSync(newPath)); + } + + @override + Directory renameSync(String newPath) { + throw UnimplementedError(); + } + + @override + Directory get absolute => throw UnimplementedError(); + + @override + Future create({bool recursive = false}) async { + createSync(recursive: recursive); + return this; + } + + @override + void createSync({bool recursive = false}) {} + + @override + Future createTemp([String? prefix]) async { + return Future.value(createTempSync(prefix)); + } + + @override + Directory createTempSync([String? prefix]) { + throw UnimplementedError(); + } + + @override + Stream list( + {bool recursive = false, bool followLinks = true}) { + // TODO: implement list + throw UnimplementedError(); + } + + @override + List listSync( + {bool recursive = false, bool followLinks = true}) { + // TODO: implement listSync + throw UnimplementedError(); + } +} diff --git a/packages/edge_io/lib/adapters/memory/entity.dart b/packages/edge_io/lib/adapters/memory/entity.dart index 761b4dc..4ae577a 100644 --- a/packages/edge_io/lib/adapters/memory/entity.dart +++ b/packages/edge_io/lib/adapters/memory/entity.dart @@ -2,8 +2,25 @@ part of edge_io.memory; class MemoryFsEntity implements FileSystemEntity { final MemoryFsOverrides overrides; + final String path; - MemoryFsEntity(this.overrides); + MemoryFsEntity(this.overrides, this.path); + + /// Cached list of segments in the path. + List? _cachedSegments; + + /// Returns the segments in the path. + List get _segments => _cachedSegments ??= path.split('/'); + + /// Returns the parent node of the file. + MemoryFsImplementation? get _parentNode { + if (_segments.length == 1) { + return null; + } + + final parentPath = _segments.sublist(0, _segments.length - 1).join('/'); + return overrides._entities.get(parentPath); + } @override // TODO: implement absolute @@ -36,9 +53,6 @@ class MemoryFsEntity implements FileSystemEntity { @override Directory get parent => throw UnimplementedError(); - @override - String get path => throw UnimplementedError(); - @override Future rename(String newPath) { // TODO: implement rename diff --git a/packages/edge_io/lib/adapters/memory/file.dart b/packages/edge_io/lib/adapters/memory/file.dart index a9125c8..ce87964 100644 --- a/packages/edge_io/lib/adapters/memory/file.dart +++ b/packages/edge_io/lib/adapters/memory/file.dart @@ -2,27 +2,8 @@ part of edge_io.memory; /// A file in the memory file system. class MemoryFile extends MemoryFsEntity implements File { - /// The path to the file. - final String path; - /// Creates a new file. - MemoryFile._(super.overrides, this.path); - - /// Cached list of segments in the path. - List? _cachedSegments; - - /// Returns the segments in the path. - List get _segments => _cachedSegments ??= path.split('/'); - - /// Returns the parent node of the file. - MemoryFsImplementation? get _parentNode { - if (_segments.length == 1) { - return null; - } - - final parentPath = _segments.sublist(0, _segments.length - 1).join('/'); - return overrides._entities.get(parentPath); - } + MemoryFile._(super.overrides, super.path); @override Future rename(String newPath) { diff --git a/packages/edge_io/lib/adapters/memory/impl/directory_impl.dart b/packages/edge_io/lib/adapters/memory/impl/directory_impl.dart new file mode 100644 index 0000000..93e46d4 --- /dev/null +++ b/packages/edge_io/lib/adapters/memory/impl/directory_impl.dart @@ -0,0 +1,3 @@ +import 'implementation.dart'; + +class MemoryDirectoryImplementation extends MemoryFsImplementation {} diff --git a/packages/edge_io/lib/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/adapters/memory/memory_adapter.dart index 44c562a..3d5fb94 100644 --- a/packages/edge_io/lib/adapters/memory/memory_adapter.dart +++ b/packages/edge_io/lib/adapters/memory/memory_adapter.dart @@ -8,7 +8,7 @@ import 'impl/implementation.dart'; import 'impl/file_impl.dart'; part 'entity.dart'; -// part 'directory.dart'; +part 'directory.dart'; part 'file.dart'; class MemoryFsOverrides extends IOOverrides { @@ -24,8 +24,7 @@ class MemoryFsOverrides extends IOOverrides { @override Directory createDirectory(String path) { - // return MemoryDirectory(this, path); - throw UnimplementedError(); + return MemoryDirectory._(this, path); } @override diff --git a/packages/edge_io/pubspec.lock b/packages/edge_io/pubspec.lock index feaa367..381ccae 100644 --- a/packages/edge_io/pubspec.lock +++ b/packages/edge_io/pubspec.lock @@ -129,6 +129,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" + lints: + dependency: "direct dev" + description: + name: lints + sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + url: "https://pub.dev" + source: hosted + version: "2.0.1" logging: dependency: transitive description: @@ -362,4 +370,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge_io/pubspec.yaml b/packages/edge_io/pubspec.yaml index feb86ec..4a9be47 100644 --- a/packages/edge_io/pubspec.yaml +++ b/packages/edge_io/pubspec.yaml @@ -11,4 +11,5 @@ dependencies: path: ^1.8.3 dev_dependencies: + lints: ^2.0.0 test: ^1.23.1 \ No newline at end of file diff --git a/packages/edge_runtime/example/pubspec.lock b/packages/edge_runtime/example/pubspec.lock index 2f0a2a9..41a54e9 100644 --- a/packages/edge_runtime/example/pubspec.lock +++ b/packages/edge_runtime/example/pubspec.lock @@ -336,4 +336,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge_runtime/pubspec.lock b/packages/edge_runtime/pubspec.lock index c350b81..ff28c9b 100644 --- a/packages/edge_runtime/pubspec.lock +++ b/packages/edge_runtime/pubspec.lock @@ -554,4 +554,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/netlify_edge/example/pubspec.lock b/packages/netlify_edge/example/pubspec.lock index 340bb98..2deaacb 100644 --- a/packages/netlify_edge/example/pubspec.lock +++ b/packages/netlify_edge/example/pubspec.lock @@ -343,4 +343,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/netlify_edge/pubspec.lock b/packages/netlify_edge/pubspec.lock index a3ac012..5c9a16d 100644 --- a/packages/netlify_edge/pubspec.lock +++ b/packages/netlify_edge/pubspec.lock @@ -536,4 +536,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/vercel_edge/example/pubspec.lock b/packages/vercel_edge/example/pubspec.lock index dea6771..8d9c37e 100644 --- a/packages/vercel_edge/example/pubspec.lock +++ b/packages/vercel_edge/example/pubspec.lock @@ -375,4 +375,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" diff --git a/packages/vercel_edge/pubspec.lock b/packages/vercel_edge/pubspec.lock index 22341ad..9380066 100644 --- a/packages/vercel_edge/pubspec.lock +++ b/packages/vercel_edge/pubspec.lock @@ -536,4 +536,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <4.0.0" + dart: ">=2.19.0 <3.0.0" From e059305960360ed9518c893964609bf34fad4b71 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Fri, 17 Feb 2023 15:09:58 +0000 Subject: [PATCH 06/19] - --- .../cloudflare-durable-objects/pubspec.lock | 8 --- examples/vercel-edge-shelf/pubspec.lock | 8 --- .../cloudflare_workers/example/pubspec.lock | 8 --- packages/cloudflare_workers/pubspec.lock | 8 --- packages/edge/pubspec.lock | 8 --- .../lib/adapters/memory/directory.dart | 64 +++++++++++++++++-- .../lib/adapters/memory/memory_adapter.dart | 7 +- packages/edge_io/test/_playground.dart | 34 +++++++--- packages/edge_io/test/memory_test.dart | 23 +++++++ packages/edge_runtime/example/pubspec.lock | 8 --- packages/netlify_edge/example/pubspec.lock | 8 --- packages/netlify_edge/pubspec.lock | 8 --- packages/vercel_edge/example/pubspec.lock | 8 --- packages/vercel_edge/pubspec.lock | 8 --- 14 files changed, 111 insertions(+), 97 deletions(-) diff --git a/examples/cloudflare-durable-objects/pubspec.lock b/examples/cloudflare-durable-objects/pubspec.lock index 86b68db..de42c45 100644 --- a/examples/cloudflare-durable-objects/pubspec.lock +++ b/examples/cloudflare-durable-objects/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" cloudflare_workers: dependency: "direct main" description: diff --git a/examples/vercel-edge-shelf/pubspec.lock b/examples/vercel-edge-shelf/pubspec.lock index 9eee96e..d630dac 100644 --- a/examples/vercel-edge-shelf/pubspec.lock +++ b/examples/vercel-edge-shelf/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/cloudflare_workers/example/pubspec.lock b/packages/cloudflare_workers/example/pubspec.lock index 79b0e3c..f1fc47c 100644 --- a/packages/cloudflare_workers/example/pubspec.lock +++ b/packages/cloudflare_workers/example/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" cloudflare_workers: dependency: "direct main" description: diff --git a/packages/cloudflare_workers/pubspec.lock b/packages/cloudflare_workers/pubspec.lock index 130717c..c253441 100644 --- a/packages/cloudflare_workers/pubspec.lock +++ b/packages/cloudflare_workers/pubspec.lock @@ -73,14 +73,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/edge/pubspec.lock b/packages/edge/pubspec.lock index 2c6d37f..f8ddf0b 100644 --- a/packages/edge/pubspec.lock +++ b/packages/edge/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: "direct main" - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/edge_io/lib/adapters/memory/directory.dart b/packages/edge_io/lib/adapters/memory/directory.dart index 6320901..9c9df74 100644 --- a/packages/edge_io/lib/adapters/memory/directory.dart +++ b/packages/edge_io/lib/adapters/memory/directory.dart @@ -10,7 +10,21 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { @override Directory renameSync(String newPath) { - throw UnimplementedError(); + final existing = + overrides._entities.get(path); + + if (existing == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Rename failed", + ); + } + + overrides._entities.remove(path); // Remove the old directory. + overrides._entities.set(newPath, existing); + + return MemoryDirectory._(overrides, newPath); } @override @@ -23,7 +37,26 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { } @override - void createSync({bool recursive = false}) {} + void createSync({bool recursive = false}) { + // If recursive is false, we should check whether this directory has a parent, + // and if not, throw an error. + if (!recursive && _segments.length > 1 && _parentNode == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Creation failed", + ); + } + + final existing = + overrides._entities.get(path); + + if (existing != null) { + return; + } + + overrides._entities.set(path, MemoryDirectoryImplementation()); + } @override Future createTemp([String? prefix]) async { @@ -38,14 +71,33 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { @override Stream list( {bool recursive = false, bool followLinks = true}) { - // TODO: implement list - throw UnimplementedError(); + return Stream.fromIterable( + listSync(recursive: recursive, followLinks: followLinks)); } @override List listSync( {bool recursive = false, bool followLinks = true}) { - // TODO: implement listSync - throw UnimplementedError(); + final existing = + overrides._entities.get(path); + + if (existing == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + "Directory listing failed", + ); + } + + final map = overrides._entities.toMap(); + final entities = []; + + if (_parentNode == null) { + return entities; + } + + // TODO implement me + + return entities; } } diff --git a/packages/edge_io/lib/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/adapters/memory/memory_adapter.dart index 3d5fb94..5c21cab 100644 --- a/packages/edge_io/lib/adapters/memory/memory_adapter.dart +++ b/packages/edge_io/lib/adapters/memory/memory_adapter.dart @@ -3,6 +3,7 @@ library edge_io.memory; import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; +import 'package:edge_io/adapters/memory/impl/directory_impl.dart'; import 'package:path/path.dart' as p; import 'impl/implementation.dart'; import 'impl/file_impl.dart'; @@ -139,7 +140,7 @@ class Entities { Entities(this.basePath); - Map _entities = {}; + final Map _entities = {}; void clear() { _entities.clear(); @@ -171,4 +172,8 @@ class Entities { return impl; } + + Map toMap() { + return _entities; + } } diff --git a/packages/edge_io/test/_playground.dart b/packages/edge_io/test/_playground.dart index 3f7ea3a..055e3d8 100644 --- a/packages/edge_io/test/_playground.dart +++ b/packages/edge_io/test/_playground.dart @@ -6,15 +6,22 @@ File tempFile(File file) { return File(p.join(tmp.path, file.path)); } +Directory tempDir(Directory directory) { + final tmp = Directory.systemTemp.createTempSync(); + return Directory(p.join(tmp.path, directory.path)); +} + void main() async { - await absolute(); - // await copy(); - // await create(); - // await metadata(); - // await read(); + // await fileAbsolute(); + // await fileCopy(); + // await fileCreate(); + // await fileMetadata(); + // await fileRead(); + + await dirRename(); } -Future absolute() async { +Future fileAbsolute() async { final file1 = File('file1.txt'); print(file1.absolute.path); } @@ -27,7 +34,7 @@ Future rename() async { print(file2.path); } -Future copy() async { +Future fileCopy() async { final file1 = tempFile(File('file1.txt')); await file1.create(); final file2 = await file1.copySync('newPath.txt'); @@ -35,14 +42,14 @@ Future copy() async { print(file2.path); } -Future create() async { +Future fileCreate() async { final file1 = tempFile(File('foo/file1.txt')); await file1.create(recursive: true); await file1.create(exclusive: true); print(file1.path); } -Future metadata() async { +Future fileMetadata() async { final file1 = tempFile(File('file1.txt')); // await file1.create(recursive: true); // file1.setLastAccessedSync(DateTime.now()); @@ -53,9 +60,16 @@ Future metadata() async { print(file1.path); } -Future read() async { +Future fileRead() async { final file1 = tempFile(File('foo/file1.txt')); // await file1.create(recursive: true); await file1.writeAsString('Hello World'); print(await file1.readAsString()); } + +Future dirRename() async { + final dir1 = tempDir(Directory('foo')); + await dir1.create(recursive: true); + print(dir1.listSync()); + print(dir1.path); +} diff --git a/packages/edge_io/test/memory_test.dart b/packages/edge_io/test/memory_test.dart index 09f04c5..2fa1872 100644 --- a/packages/edge_io/test/memory_test.dart +++ b/packages/edge_io/test/memory_test.dart @@ -151,5 +151,28 @@ void main() { }); }); }); + + group('Directory', () { + group('rename', () { + test('it renames a directory and removes the original', () { + final dir1 = Directory('dir1'); + + dir1.createSync(); + final renamed = dir1.renameSync('dir2'); + + expect(renamed.path, 'dir2'); + expect(dir1.existsSync(), false); + }); + + test('it errors when renaming if the directory does not exist', () { + final dir1 = Directory('foo'); + + expect( + () => dir1.renameSync('bar'), + throwsA(TypeMatcher()), + ); + }); + }); + }); }); } diff --git a/packages/edge_runtime/example/pubspec.lock b/packages/edge_runtime/example/pubspec.lock index 9dd4f38..08bdab5 100644 --- a/packages/edge_runtime/example/pubspec.lock +++ b/packages/edge_runtime/example/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/netlify_edge/example/pubspec.lock b/packages/netlify_edge/example/pubspec.lock index 76ef829..9eee4ea 100644 --- a/packages/netlify_edge/example/pubspec.lock +++ b/packages/netlify_edge/example/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/netlify_edge/pubspec.lock b/packages/netlify_edge/pubspec.lock index 68029e8..7df5a3e 100644 --- a/packages/netlify_edge/pubspec.lock +++ b/packages/netlify_edge/pubspec.lock @@ -73,14 +73,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/vercel_edge/example/pubspec.lock b/packages/vercel_edge/example/pubspec.lock index 5ca75bb..c9a9986 100644 --- a/packages/vercel_edge/example/pubspec.lock +++ b/packages/vercel_edge/example/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: diff --git a/packages/vercel_edge/pubspec.lock b/packages/vercel_edge/pubspec.lock index 2156bc9..7f01a0a 100644 --- a/packages/vercel_edge/pubspec.lock +++ b/packages/vercel_edge/pubspec.lock @@ -73,14 +73,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" collection: dependency: transitive description: From 104d1313df519b8cbd42f61e1840c9e99854b7c1 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 21 Feb 2023 12:22:02 +0000 Subject: [PATCH 07/19] - --- packages/edge_io/CHANGELOG.md | 3 ++ packages/edge_io/README.md | 35 ++++++++++++++++++- .../edge_io/lib/{edge_io.dart => memory.dart} | 2 ++ packages/edge_io/pubspec.yaml | 2 +- packages/edge_io/test/memory_test.dart | 5 +-- 5 files changed, 43 insertions(+), 4 deletions(-) rename packages/edge_io/lib/{edge_io.dart => memory.dart} (73%) diff --git a/packages/edge_io/CHANGELOG.md b/packages/edge_io/CHANGELOG.md index e69de29..5d3c252 100644 --- a/packages/edge_io/CHANGELOG.md +++ b/packages/edge_io/CHANGELOG.md @@ -0,0 +1,3 @@ +# 0.0.1-dev.1 + +- Initial release. \ No newline at end of file diff --git a/packages/edge_io/README.md b/packages/edge_io/README.md index 7d1a56d..e10fb14 100644 --- a/packages/edge_io/README.md +++ b/packages/edge_io/README.md @@ -1 +1,34 @@ -# Edge IO \ No newline at end of file +# Edge IO - Dart Edge + +This package (will eventually) contains a set of io adapters for use on Edge environments. + +> This package is currently in development and is not yet ready for use. + +## Usage + +Install the package: + +``` +dart pub add edge_io +``` + +Import the adapter you require, e.g. Memory: + +```dart +import 'package:edge_io/memory.dart'; +``` + +Override the io adapter: + +```dart +import 'dart:io'; +import 'package:edge_io/memory.dart'; + +void main() { + final overrides = MemoryFsOverrides(); + IOOverrides.global = overrides; + + // Use io as normal, e.g.: + final file = File('test.txt'); +} +``` \ No newline at end of file diff --git a/packages/edge_io/lib/edge_io.dart b/packages/edge_io/lib/memory.dart similarity index 73% rename from packages/edge_io/lib/edge_io.dart rename to packages/edge_io/lib/memory.dart index 57595f8..b3740ed 100644 --- a/packages/edge_io/lib/edge_io.dart +++ b/packages/edge_io/lib/memory.dart @@ -1 +1,3 @@ +library memory; + export 'adapters/memory/memory_adapter.dart'; diff --git a/packages/edge_io/pubspec.yaml b/packages/edge_io/pubspec.yaml index 4a9be47..eb14ba3 100644 --- a/packages/edge_io/pubspec.yaml +++ b/packages/edge_io/pubspec.yaml @@ -2,7 +2,7 @@ name: edge_io description: IO implementations for Dart Edge. homepage: https://dartedge.dev repository: https://github.com/invertase/dart_edge/tree/main/packages/edge_io -version: 0.0.1 +version: 0.0.1-dev.1 environment: sdk: ">=2.18.5 <3.0.0" diff --git a/packages/edge_io/test/memory_test.dart b/packages/edge_io/test/memory_test.dart index 2fa1872..8bb1519 100644 --- a/packages/edge_io/test/memory_test.dart +++ b/packages/edge_io/test/memory_test.dart @@ -1,9 +1,10 @@ import 'dart:io'; import 'package:test/test.dart'; -import 'package:edge_io/edge_io.dart' show MemoryFsOverrides; +import 'package:edge_io/memory.dart'; void main() { + // TODO swap out based on args? final overrides = MemoryFsOverrides(); IOOverrides.global = overrides; @@ -11,7 +12,7 @@ void main() { overrides.clear(); }); - group('MemoryFsOverrides', () { + group('Overrides', () { group('File', () { group('rename', () { test('it renames a file and removes the original', () { From 8baf8ab200f0a3a5071c3410452128a8e2c00a56 Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Mon, 27 Feb 2023 15:45:39 +0000 Subject: [PATCH 08/19] - --- packages/edge_io/lib/memory.dart | 2 +- .../{ => src}/adapters/memory/directory.dart | 42 ++++++- .../lib/{ => src}/adapters/memory/entity.dart | 51 ++++---- .../lib/{ => src}/adapters/memory/file.dart | 25 +++- .../lib/src/adapters/memory/file_stat.dart | 116 ++++++++++++++++++ .../adapters/memory/impl/directory_impl.dart | 0 .../adapters/memory/impl/file_impl.dart | 1 + .../adapters/memory/impl/implementation.dart | 0 .../adapters/memory/memory_adapter.dart | 71 ++++++----- .../edge_io/lib/src/streamed_io_sink.dart | 65 ++++++++++ packages/edge_io/lib/src/streamed_stdout.dart | 77 ++++++++++++ packages/edge_io/test/_playground.dart | 18 ++- 12 files changed, 394 insertions(+), 74 deletions(-) rename packages/edge_io/lib/{ => src}/adapters/memory/directory.dart (68%) rename packages/edge_io/lib/{ => src}/adapters/memory/entity.dart (59%) rename packages/edge_io/lib/{ => src}/adapters/memory/file.dart (92%) create mode 100644 packages/edge_io/lib/src/adapters/memory/file_stat.dart rename packages/edge_io/lib/{ => src}/adapters/memory/impl/directory_impl.dart (100%) rename packages/edge_io/lib/{ => src}/adapters/memory/impl/file_impl.dart (84%) rename packages/edge_io/lib/{ => src}/adapters/memory/impl/implementation.dart (100%) rename packages/edge_io/lib/{ => src}/adapters/memory/memory_adapter.dart (64%) create mode 100644 packages/edge_io/lib/src/streamed_io_sink.dart create mode 100644 packages/edge_io/lib/src/streamed_stdout.dart diff --git a/packages/edge_io/lib/memory.dart b/packages/edge_io/lib/memory.dart index b3740ed..adf44c8 100644 --- a/packages/edge_io/lib/memory.dart +++ b/packages/edge_io/lib/memory.dart @@ -1,3 +1,3 @@ library memory; -export 'adapters/memory/memory_adapter.dart'; +export 'src/adapters/memory/memory_adapter.dart'; diff --git a/packages/edge_io/lib/adapters/memory/directory.dart b/packages/edge_io/lib/src/adapters/memory/directory.dart similarity index 68% rename from packages/edge_io/lib/adapters/memory/directory.dart rename to packages/edge_io/lib/src/adapters/memory/directory.dart index 9c9df74..2fece89 100644 --- a/packages/edge_io/lib/adapters/memory/directory.dart +++ b/packages/edge_io/lib/src/adapters/memory/directory.dart @@ -92,12 +92,48 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { final map = overrides._entities.toMap(); final entities = []; - if (_parentNode == null) { - return entities; + FileSystemEntity toEntity(MemoryFsImplementation impl) { + if (impl is MemoryFileImplementation) { + return MemoryFile._(overrides, path); + } else if (impl is MemoryDirectoryImplementation) { + return MemoryDirectory._(overrides, path); + } else { + throw StateError("Unknown entity type"); + } } - // TODO implement me + // TODO: followLinks + if (recursive) { + for (final entry in map.entries) { + if (entry.key.startsWith(path)) { + entities.add(toEntity(entry.value!)); + } + } + } else { + for (final entry in map.entries) { + if (entry.key.startsWith(path) && + entry.key.split("/").length == path.split("/").length + 1) { + entities.add(toEntity(entry.value!)); + } + } + } return entities; } + + @override + String resolveSymbolicLinksSync() { + throw UnimplementedError('Directory.resolveSymbolicLinksSync'); + } + + @override + FileStat statSync() { + return MemoryFileStat(overrides, path); + } + + @override + Stream watch( + {int events = FileSystemEvent.all, bool recursive = false}) { + throw UnimplementedError('Directory.watch'); + } } diff --git a/packages/edge_io/lib/adapters/memory/entity.dart b/packages/edge_io/lib/src/adapters/memory/entity.dart similarity index 59% rename from packages/edge_io/lib/adapters/memory/entity.dart rename to packages/edge_io/lib/src/adapters/memory/entity.dart index 4ae577a..033cd05 100644 --- a/packages/edge_io/lib/adapters/memory/entity.dart +++ b/packages/edge_io/lib/src/adapters/memory/entity.dart @@ -1,7 +1,9 @@ part of edge_io.memory; -class MemoryFsEntity implements FileSystemEntity { +abstract class MemoryFsEntity implements FileSystemEntity { final MemoryFsOverrides overrides; + + @override final String path; MemoryFsEntity(this.overrides, this.path); @@ -23,13 +25,12 @@ class MemoryFsEntity implements FileSystemEntity { } @override - // TODO: implement absolute FileSystemEntity get absolute => throw UnimplementedError(); @override - Future delete({bool recursive = false}) { - // TODO: implement delete - throw UnimplementedError(); + Future delete({bool recursive = false}) async { + deleteSync(recursive: recursive); + return this; } @override @@ -51,52 +52,42 @@ class MemoryFsEntity implements FileSystemEntity { bool get isAbsolute => true; @override - Directory get parent => throw UnimplementedError(); + Directory get parent { + if (_parentNode == null) { + return Directory('.'); + } + + return Directory(_segments.sublist(0, _segments.length - 1).join('/')); + } @override Future rename(String newPath) { - // TODO: implement rename - throw UnimplementedError(); + return Future.value(renameSync(newPath)); } @override - FileSystemEntity renameSync(String newPath) { - // TODO: implement renameSync - throw UnimplementedError(); - } + FileSystemEntity renameSync(String newPath); @override Future resolveSymbolicLinks() { - // TODO: implement resolveSymbolicLinks - throw UnimplementedError(); + return Future.value(resolveSymbolicLinksSync()); } @override - String resolveSymbolicLinksSync() { - // TODO: implement resolveSymbolicLinksSync - throw UnimplementedError(); - } + String resolveSymbolicLinksSync(); @override Future stat() { - // TODO: implement stat - throw UnimplementedError(); + return Future.value(statSync()); } @override - FileStat statSync() { - // TODO: implement statSync - throw UnimplementedError(); - } + FileStat statSync(); @override - // TODO: implement uri - Uri get uri => throw UnimplementedError(); + Uri get uri => Uri.file(path); @override Stream watch( - {int events = FileSystemEvent.all, bool recursive = false}) { - // TODO: implement watch - throw UnimplementedError(); - } + {int events = FileSystemEvent.all, bool recursive = false}); } diff --git a/packages/edge_io/lib/adapters/memory/file.dart b/packages/edge_io/lib/src/adapters/memory/file.dart similarity index 92% rename from packages/edge_io/lib/adapters/memory/file.dart rename to packages/edge_io/lib/src/adapters/memory/file.dart index ce87964..b63de5d 100644 --- a/packages/edge_io/lib/adapters/memory/file.dart +++ b/packages/edge_io/lib/src/adapters/memory/file.dart @@ -154,8 +154,7 @@ class MemoryFile extends MemoryFsEntity implements File { @override IOSink openWrite({FileMode mode = FileMode.write, Encoding encoding = utf8}) { - // TODO: implement openWrite - throw UnimplementedError(); + return StreamedIOSink(this, encoding: encoding); } @override @@ -261,6 +260,12 @@ class MemoryFile extends MemoryFsEntity implements File { case FileMode.writeOnlyAppend: file.bytes.addAll(bytes); break; + case FileMode.read: + throw FileSystemException( + 'Cannot write to file in read mode', + path, + OSError('Invalid argument', 22), + ); } overrides._entities.set(path, file); @@ -282,4 +287,20 @@ class MemoryFile extends MemoryFsEntity implements File { bool flush = false}) { writeAsBytesSync(utf8.encode(contents), mode: mode, flush: flush); } + + @override + String resolveSymbolicLinksSync() { + throw UnimplementedError('File.resolveSymbolicLinksSync'); + } + + @override + FileStat statSync() { + return MemoryFileStat(overrides, path); + } + + @override + Stream watch( + {int events = FileSystemEvent.all, bool recursive = false}) { + throw UnimplementedError('File.watch'); + } } diff --git a/packages/edge_io/lib/src/adapters/memory/file_stat.dart b/packages/edge_io/lib/src/adapters/memory/file_stat.dart new file mode 100644 index 0000000..680f07a --- /dev/null +++ b/packages/edge_io/lib/src/adapters/memory/file_stat.dart @@ -0,0 +1,116 @@ +part of edge_io.memory; + +class MemoryFileStat implements FileStat { + final MemoryFsOverrides _overrides; + final String _path; + final MemoryFsImplementation? _impl; + + MemoryFileStat(this._overrides, this._path) + : _impl = _overrides._entities.get(_path); + + DateTime get defaultDateTime => DateTime.fromMillisecondsSinceEpoch(0); + + @override + DateTime get accessed { + if (_impl == null) { + return defaultDateTime; + } + + if (_impl is MemoryFileImplementation) { + return (_impl as MemoryFileImplementation).lastAccessed; + } + + if (_impl is MemoryDirectoryImplementation) { + return DateTime.now(); + } + + throw UnimplementedError(); + } + + @override + DateTime get modified { + if (_impl == null) { + return defaultDateTime; + } + + if (_impl is MemoryFileImplementation) { + return (_impl as MemoryFileImplementation).lastModified; + } + + if (_impl is MemoryDirectoryImplementation) { + return DateTime.now(); + } + + throw UnimplementedError(); + } + + @override + DateTime get changed { + if (_impl == null) { + return defaultDateTime; + } + + if (_impl is MemoryFileImplementation) { + return (_impl as MemoryFileImplementation).changed; + } + + if (_impl is MemoryDirectoryImplementation) { + return DateTime.now(); + } + + throw UnimplementedError(); + } + + @override + int get mode => 777; + + @override + String modeString() { + if (_impl == null) { + return '---------'; + } + + var permissions = mode & 0xFFF; + var codes = const ['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx']; + var result = []; + if ((permissions & 0x800) != 0) result.add("(suid) "); + if ((permissions & 0x400) != 0) result.add("(guid) "); + if ((permissions & 0x200) != 0) result.add("(sticky) "); + result + ..add(codes[(permissions >> 6) & 0x7]) + ..add(codes[(permissions >> 3) & 0x7]) + ..add(codes[permissions & 0x7]); + return result.join(); + } + + @override + int get size { + if (_impl == null) { + return -1; + } + + if (_impl is MemoryFileImplementation) { + return (_impl as MemoryFileImplementation).bytes.length; + } + + throw UnimplementedError( + 'TODO: implement size for MemoryDirectoryImplementation'); + } + + @override + FileSystemEntityType get type { + if (_impl is MemoryDirectoryImplementation) { + return FileSystemEntityType.directory; + } + + if (_impl is MemoryFileImplementation) { + return FileSystemEntityType.file; + } + + // if (_impl is MemoryLink) { + // return FileSystemEntityType.link; + // } + + return FileSystemEntityType.notFound; + } +} diff --git a/packages/edge_io/lib/adapters/memory/impl/directory_impl.dart b/packages/edge_io/lib/src/adapters/memory/impl/directory_impl.dart similarity index 100% rename from packages/edge_io/lib/adapters/memory/impl/directory_impl.dart rename to packages/edge_io/lib/src/adapters/memory/impl/directory_impl.dart diff --git a/packages/edge_io/lib/adapters/memory/impl/file_impl.dart b/packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart similarity index 84% rename from packages/edge_io/lib/adapters/memory/impl/file_impl.dart rename to packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart index 382057d..73e2341 100644 --- a/packages/edge_io/lib/adapters/memory/impl/file_impl.dart +++ b/packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart @@ -4,4 +4,5 @@ class MemoryFileImplementation extends MemoryFsImplementation { List bytes = []; DateTime lastAccessed = DateTime.now(); DateTime lastModified = DateTime.now(); + DateTime changed = DateTime.now(); } diff --git a/packages/edge_io/lib/adapters/memory/impl/implementation.dart b/packages/edge_io/lib/src/adapters/memory/impl/implementation.dart similarity index 100% rename from packages/edge_io/lib/adapters/memory/impl/implementation.dart rename to packages/edge_io/lib/src/adapters/memory/impl/implementation.dart diff --git a/packages/edge_io/lib/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart similarity index 64% rename from packages/edge_io/lib/adapters/memory/memory_adapter.dart rename to packages/edge_io/lib/src/adapters/memory/memory_adapter.dart index 5c21cab..00a17dc 100644 --- a/packages/edge_io/lib/adapters/memory/memory_adapter.dart +++ b/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart @@ -3,21 +3,28 @@ library edge_io.memory; import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; -import 'package:edge_io/adapters/memory/impl/directory_impl.dart'; import 'package:path/path.dart' as p; + +import '../../streamed_io_sink.dart'; +import '../../streamed_stdout.dart'; +import 'impl/directory_impl.dart'; import 'impl/implementation.dart'; import 'impl/file_impl.dart'; part 'entity.dart'; part 'directory.dart'; part 'file.dart'; +part 'file_stat.dart'; class MemoryFsOverrides extends IOOverrides { final Entities _entities; + final Stdout _stdout; MemoryFsOverrides({ String? basePath, - }) : _entities = Entities(basePath ?? '/'); + Stdout? stdout, + }) : _entities = Entities(basePath ?? '/'), + _stdout = stdout ?? StreamedStdout(); void clear() { _entities.clear(); @@ -35,50 +42,51 @@ class MemoryFsOverrides extends IOOverrides { @override Link createLink(String path) { - // TODO: implement createLink - throw UnimplementedError(); + throw UnimplementedError('MemoryFsOverrides.createLink'); } @override Stream fsWatch(String path, int events, bool recursive) { - // TODO: implement fsWatch - throw UnimplementedError(); + throw UnimplementedError('MemoryFsOverrides.fsWatch'); } @override - bool fsWatchIsSupported() { - // TODO: implement fsWatchIsSupported - throw UnimplementedError(); - } + bool fsWatchIsSupported() => false; @override Future fseGetType(String path, bool followLinks) { - // TODO: implement fseGetType - throw UnimplementedError(); + return Future.value(fseGetTypeSync(path, followLinks)); } @override FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { - // TODO: implement fseGetTypeSync - throw UnimplementedError(); + final entity = _entities.get(path); + + if (entity is MemoryDirectoryImplementation) { + return FileSystemEntityType.directory; + } + + if (entity is MemoryFileImplementation) { + return FileSystemEntityType.file; + } + + return FileSystemEntityType.notFound; } @override Future fseIdentical(String path1, String path2) { - // TODO: implement fseIdentical - throw UnimplementedError(); + return Future.value(fseIdenticalSync(path1, path2)); } @override bool fseIdenticalSync(String path1, String path2) { - // TODO: implement fseIdenticalSync - throw UnimplementedError(); + // This is probably lazy... + return path1 == path2; } @override Directory getCurrentDirectory() { - // TODO: implement getCurrentDirectory - throw UnimplementedError(); + return MemoryDirectory._(this, _entities.basePath); } @override @@ -90,49 +98,44 @@ class MemoryFsOverrides extends IOOverrides { @override Future serverSocketBind(address, int port, {int backlog = 0, bool v6Only = false, bool shared = false}) { - // TODO: implement serverSocketBind - throw UnimplementedError(); + throw UnimplementedError('MemoryFsOverrides.serverSocketBind'); } @override void setCurrentDirectory(String path) { - // TODO: implement setCurrentDirectory + throw UnimplementedError('MemoryFsOverrides.setCurrentDirectory'); } @override Future socketConnect(host, int port, {sourceAddress, int sourcePort = 0, Duration? timeout}) { - // TODO: implement socketConnect - throw UnimplementedError(); + throw UnimplementedError('MemoryFsOverrides.socketConnect'); } @override Future> socketStartConnect(host, int port, {sourceAddress, int sourcePort = 0}) { - // TODO: implement socketStartConnect - throw UnimplementedError(); + throw UnimplementedError('MemoryFsOverrides.socketStartConnect'); } @override Future stat(String path) { - // TODO: implement stat - throw UnimplementedError(); + return Future.value(MemoryFileStat(this, path)); } @override FileStat statSync(String path) { - // TODO: implement statSync - throw UnimplementedError(); + return MemoryFileStat(this, path); } @override - Stdout get stderr => throw UnimplementedError(); + Stdout get stderr => _stdout; @override - Stdin get stdin => throw UnimplementedError(); + Stdin get stdin => throw UnimplementedError('MemoryFsOverrides.stdin'); @override - Stdout get stdout => throw UnimplementedError(); + Stdout get stdout => _stdout; } class Entities { diff --git a/packages/edge_io/lib/src/streamed_io_sink.dart b/packages/edge_io/lib/src/streamed_io_sink.dart new file mode 100644 index 0000000..df697bf --- /dev/null +++ b/packages/edge_io/lib/src/streamed_io_sink.dart @@ -0,0 +1,65 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; + +class StreamedIOSink implements IOSink { + final StreamController> _controller = StreamController(); + final File _file; + + @override + Encoding encoding; + + StreamedIOSink( + this._file, { + required this.encoding, + }); + + @override + void add(List data) { + _controller.add(data); + } + + @override + void addError(Object error, [StackTrace? stackTrace]) { + _controller.addError(error, stackTrace); + } + + @override + Future addStream(Stream> stream) { + return _controller.addStream(stream); + } + + @override + Future close() { + throw UnimplementedError('StreamedIOSink.close'); + } + + @override + Future get done => _controller.done; + + @override + Future flush() async { + final bytes = await _controller.stream.toList(); + await _file.writeAsBytes(bytes.expand((e) => e).toList()); + } + + @override + void write(Object? object) { + _controller.add(utf8.encode('$object')); + } + + @override + void writeAll(Iterable objects, [String separator = ""]) { + _controller.add(utf8.encode(objects.join(separator))); + } + + @override + void writeCharCode(int charCode) { + _controller.add(utf8.encode(String.fromCharCode(charCode))); + } + + @override + void writeln([Object? object = ""]) { + _controller.add(utf8.encode('$object')); + } +} diff --git a/packages/edge_io/lib/src/streamed_stdout.dart b/packages/edge_io/lib/src/streamed_stdout.dart new file mode 100644 index 0000000..d2987b3 --- /dev/null +++ b/packages/edge_io/lib/src/streamed_stdout.dart @@ -0,0 +1,77 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; + +class StreamedStdout implements Stdout { + StreamController>? _controllerInstance; + + StreamController> get _controller => + _controllerInstance ??= StreamController.broadcast(); + + @override + Encoding encoding = utf8; + + @override + void add(List data) { + _controller.add(data); + } + + @override + void addError(Object error, [StackTrace? stackTrace]) { + _controller.addError(error, stackTrace); + } + + @override + Future addStream(Stream> stream) { + return _controller.addStream(stream); + } + + @override + Future close() { + return _controller.close(); + } + + @override + Future get done => _controller.done; + + @override + Future flush() { + return Future.value(); + } + + @override + bool get hasTerminal => false; + + @override + IOSink get nonBlocking => + throw UnimplementedError('StreamedStdout.nonBlocking'); + + @override + bool get supportsAnsiEscapes => false; + + @override + int get terminalColumns => 60; + + @override + int get terminalLines => 20; + + @override + void write(Object? object) { + _controller.add(utf8.encode(object.toString())); + } + + @override + void writeAll(Iterable objects, [String sep = ""]) { + _controller.add(utf8.encode(objects.join(sep))); + } + + @override + void writeCharCode(int charCode) { + _controller.add(utf8.encode(String.fromCharCode(charCode))); + } + + @override + void writeln([Object? object = ""]) { + _controller.add(utf8.encode('$object\n')); + } +} diff --git a/packages/edge_io/test/_playground.dart b/packages/edge_io/test/_playground.dart index 055e3d8..78cb38c 100644 --- a/packages/edge_io/test/_playground.dart +++ b/packages/edge_io/test/_playground.dart @@ -68,8 +68,18 @@ Future fileRead() async { } Future dirRename() async { - final dir1 = tempDir(Directory('foo')); - await dir1.create(recursive: true); - print(dir1.listSync()); - print(dir1.path); + // final dir1 = tempDir(Directory('foo')); + // // final dir2 = Directory(dir1.path + '/bar'); + // await dir1.create(recursive: true); + // await Future.delayed(Duration(seconds: 3)); + // // await dir2.create(recursive: true); + // print(await dir1.stat()); + + final f1 = tempFile(File('file1.txt')); + print(f1.parent); + // final sink = f1.openWrite(); + // // sink.addError(Exception('foo')); + // sink.add([1, 2, 3, 4, 5]); + // await sink.flush(); + // print(await f1.stat()); } From 1d6f29b346f983ccbfaccbd4db06a5be031ab5cf Mon Sep 17 00:00:00 2001 From: Elliot Hesp Date: Tue, 28 Feb 2023 15:50:15 +0000 Subject: [PATCH 09/19] - --- .../lib/src/adapters/memory/directory.dart | 41 ++-- .../lib/src/adapters/memory/entity.dart | 14 +- .../edge_io/lib/src/adapters/memory/file.dart | 154 +++++-------- .../lib/src/adapters/memory/file_stat.dart | 7 +- .../lib/src/adapters/memory/file_system.dart | 62 ++++++ .../src/adapters/memory/memory_adapter.dart | 66 ++---- .../adapters/memory/random_access_file.dart | 206 ++++++++++++++++++ .../lib/src/adapters/memory/utils.dart | 110 ++++++++++ packages/edge_io/test/_playground.dart | 42 +++- 9 files changed, 512 insertions(+), 190 deletions(-) create mode 100644 packages/edge_io/lib/src/adapters/memory/file_system.dart create mode 100644 packages/edge_io/lib/src/adapters/memory/random_access_file.dart create mode 100644 packages/edge_io/lib/src/adapters/memory/utils.dart diff --git a/packages/edge_io/lib/src/adapters/memory/directory.dart b/packages/edge_io/lib/src/adapters/memory/directory.dart index 2fece89..76c2e4e 100644 --- a/packages/edge_io/lib/src/adapters/memory/directory.dart +++ b/packages/edge_io/lib/src/adapters/memory/directory.dart @@ -1,7 +1,12 @@ part of edge_io.memory; class MemoryDirectory extends MemoryFsEntity implements Directory { - MemoryDirectory._(super.overrides, super.path); + MemoryDirectory._(super._fs, super.path); + + @override + bool existsSync() { + return _fs.get(path) != null; + } @override Future rename(String newPath) { @@ -10,21 +15,15 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { @override Directory renameSync(String newPath) { - final existing = - overrides._entities.get(path); + final dir = assertDirectoryIsEmpty(_fs, path, 'Rename failed'); - if (existing == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Rename failed", - ); - } + final newDir = MemoryDirectory._(_fs, newPath); + newDir.createSync(); - overrides._entities.remove(path); // Remove the old directory. - overrides._entities.set(newPath, existing); + _fs.remove(path); // Remove the old directory. + _fs.set(newPath, dir); - return MemoryDirectory._(overrides, newPath); + return MemoryDirectory._(_fs, newPath); } @override @@ -48,14 +47,13 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { ); } - final existing = - overrides._entities.get(path); + final existing = _fs.get(path); if (existing != null) { return; } - overrides._entities.set(path, MemoryDirectoryImplementation()); + _fs.set(path, MemoryDirectoryImplementation()); } @override @@ -78,8 +76,7 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { @override List listSync( {bool recursive = false, bool followLinks = true}) { - final existing = - overrides._entities.get(path); + final existing = _fs.get(path); if (existing == null) { throw PathNotFoundException( @@ -89,14 +86,14 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { ); } - final map = overrides._entities.toMap(); + final map = _fs.toMap(); final entities = []; FileSystemEntity toEntity(MemoryFsImplementation impl) { if (impl is MemoryFileImplementation) { - return MemoryFile._(overrides, path); + return MemoryFile._(_fs, path); } else if (impl is MemoryDirectoryImplementation) { - return MemoryDirectory._(overrides, path); + return MemoryDirectory._(_fs, path); } else { throw StateError("Unknown entity type"); } @@ -128,7 +125,7 @@ class MemoryDirectory extends MemoryFsEntity implements Directory { @override FileStat statSync() { - return MemoryFileStat(overrides, path); + return MemoryFileStat(_fs, path); } @override diff --git a/packages/edge_io/lib/src/adapters/memory/entity.dart b/packages/edge_io/lib/src/adapters/memory/entity.dart index 033cd05..f50f422 100644 --- a/packages/edge_io/lib/src/adapters/memory/entity.dart +++ b/packages/edge_io/lib/src/adapters/memory/entity.dart @@ -1,12 +1,12 @@ part of edge_io.memory; abstract class MemoryFsEntity implements FileSystemEntity { - final MemoryFsOverrides overrides; + final MemoryFileSystem _fs; @override final String path; - MemoryFsEntity(this.overrides, this.path); + MemoryFsEntity(this._fs, this.path); /// Cached list of segments in the path. List? _cachedSegments; @@ -14,14 +14,14 @@ abstract class MemoryFsEntity implements FileSystemEntity { /// Returns the segments in the path. List get _segments => _cachedSegments ??= path.split('/'); - /// Returns the parent node of the file. + /// Returns the parent node of the entity. MemoryFsImplementation? get _parentNode { if (_segments.length == 1) { return null; } final parentPath = _segments.sublist(0, _segments.length - 1).join('/'); - return overrides._entities.get(parentPath); + return _fs.get(parentPath); } @override @@ -35,7 +35,7 @@ abstract class MemoryFsEntity implements FileSystemEntity { @override void deleteSync({bool recursive = false}) { - overrides._entities.remove(path); + _fs.remove(path); } @override @@ -44,9 +44,7 @@ abstract class MemoryFsEntity implements FileSystemEntity { } @override - bool existsSync() { - return overrides._entities.get(path) != null; - } + bool existsSync(); @override bool get isAbsolute => true; diff --git a/packages/edge_io/lib/src/adapters/memory/file.dart b/packages/edge_io/lib/src/adapters/memory/file.dart index b63de5d..d9db308 100644 --- a/packages/edge_io/lib/src/adapters/memory/file.dart +++ b/packages/edge_io/lib/src/adapters/memory/file.dart @@ -3,7 +3,7 @@ part of edge_io.memory; /// A file in the memory file system. class MemoryFile extends MemoryFsEntity implements File { /// Creates a new file. - MemoryFile._(super.overrides, super.path); + MemoryFile._(super._fs, super.path); @override Future rename(String newPath) { @@ -12,26 +12,26 @@ class MemoryFile extends MemoryFsEntity implements File { @override File renameSync(String newPath) { - final existing = overrides._entities.get(path); + final file = assertIsFile(_fs, path, 'Cannot rename file to "$newPath"'); - if (existing == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Cannot rename file to '$newPath", - ); - } + final newFile = MemoryFile._(_fs, newPath); + newFile.createSync(); - overrides._entities.remove(path); // Remove the old file. - overrides._entities.set(newPath, existing); + _fs.remove(path); // Remove the old file. + _fs.set(newPath, file); // Copy the new file over - return MemoryFile._(overrides, newPath); + return newFile; } // TODO should this use Directory.current, which uses basePath? @override File get absolute => this; + @override + bool existsSync() { + return _fs.get(path) != null; + } + @override Future copy(String newPath) { return Future.value(copySync(newPath)); @@ -39,18 +39,14 @@ class MemoryFile extends MemoryFsEntity implements File { @override File copySync(String newPath) { - final existing = overrides._entities.get(path); + final file = assertIsFile(_fs, path, 'Cannot rename file to "$newPath"'); - if (existing == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Cannot copy file to '$newPath", - ); - } + final newFile = MemoryFile._(_fs, newPath); + newFile.createSync(); + + _fs.set(newPath, file); // Copy the new file over - overrides._entities.set(newPath, existing); - return MemoryFile._(overrides, newPath); + return newFile; } @override @@ -61,28 +57,14 @@ class MemoryFile extends MemoryFsEntity implements File { @override void createSync({bool recursive = false, bool exclusive = false}) { - // If recursive is false, we should check whether this file has a parent, - // and if not, throw an error. - if (!recursive && _segments.length > 1 && _parentNode == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Cannot create file at '$path", - ); - } - - final existing = overrides._entities.get(path); + if (!recursive) assertParentDirectory(_fs, path); + if (exclusive) assertFileDoesNotExist(_fs, path, 'Cannot create file'); - // If the file exists, and we're in exclusive mode, throw an error. - if (existing != null && exclusive) { - throw FileSystemException( - "Cannot create file", - path, - OSError("File exists", 17), - ); + if (recursive) { + _fs.setRecursively(path, MemoryFileImplementation()); + } else { + _fs.set(path, MemoryFileImplementation()); } - - overrides._entities.set(path, MemoryFileImplementation()); } @override @@ -92,17 +74,7 @@ class MemoryFile extends MemoryFsEntity implements File { @override DateTime lastAccessedSync() { - final file = overrides._entities.get(path); - - if (file == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Cannot retrieve access time", - ); - } - - return file.lastAccessed; + return assertIsFile(_fs, path, 'Cannot retrieve access time').lastAccessed; } @override @@ -112,17 +84,8 @@ class MemoryFile extends MemoryFsEntity implements File { @override DateTime lastModifiedSync() { - final file = overrides._entities.get(path); - - if (file == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Cannot retrieve modification time", - ); - } - - return file.lastModified; + return assertIsFile(_fs, path, 'Cannot retrieve modification time') + .lastModified; } @override @@ -132,6 +95,7 @@ class MemoryFile extends MemoryFsEntity implements File { @override int lengthSync() { + assertIsFile(_fs, path, 'Cannot retrieve length of file'); return readAsBytesSync().length; } @@ -142,18 +106,26 @@ class MemoryFile extends MemoryFsEntity implements File { @override Stream> openRead([int? start, int? end]) { - final bytes = readAsBytesSync(); + Uint8List bytes = readAsBytesSync(); + + if (start != null) { + bytes = end == null + ? bytes.sublist(start) + : bytes.sublist(start, math.min(end, bytes.length)); + } + return Stream.value(bytes.sublist(start ?? 0, end)); } @override RandomAccessFile openSync({FileMode mode = FileMode.read}) { - // TODO: implement openSync - throw UnimplementedError(); + assertIsFile(_fs, path, 'Cannot open file'); + return MemoryRandomAccessFile(_fs, path, mode: mode); } @override IOSink openWrite({FileMode mode = FileMode.write, Encoding encoding = utf8}) { + assertIsFile(_fs, path, 'Cannot open file'); return StreamedIOSink(this, encoding: encoding); } @@ -164,14 +136,8 @@ class MemoryFile extends MemoryFsEntity implements File { @override Uint8List readAsBytesSync() { - // TODO: This should probably use open()? - final file = overrides._entities.get(path); - - if (file is MemoryFileImplementation) { - return Uint8List.fromList(file.bytes); - } - - throw FileSystemException('File does not exist', path); + final file = assertIsFile(_fs, path, 'Cannot open file'); + return Uint8List.fromList(file.bytes); } @override @@ -202,16 +168,7 @@ class MemoryFile extends MemoryFsEntity implements File { @override void setLastAccessedSync(DateTime time) { - final file = overrides._entities.get(path); - - if (file == null) { - throw FileSystemException( - 'Failed to set file access time', - path, - OSError('No such file or directory', 2), - ); - } - + final file = assertIsFile(_fs, path, 'Cannot set access time'); file.lastAccessed = time; } @@ -222,16 +179,8 @@ class MemoryFile extends MemoryFsEntity implements File { @override void setLastModifiedSync(DateTime time) { - final file = overrides._entities.get(path); - - if (file == null) { - throw FileSystemException( - 'Failed to set file modification time', - path, - OSError('No such file or directory', 2), - ); - } - + final file = + assertIsFile(_fs, path, 'Failed to set file modification time'); file.lastModified = time; } @@ -245,9 +194,12 @@ class MemoryFile extends MemoryFsEntity implements File { @override void writeAsBytesSync(List bytes, {FileMode mode = FileMode.write, bool flush = false}) { - final existing = overrides._entities.get(path); + final existing = _fs.get(path); - // TODO try open the file - it should error if it can't + // If nothing exists, attempt create a new file. + if (existing == null) { + createSync(); + } final file = existing ?? MemoryFileImplementation(); @@ -268,16 +220,16 @@ class MemoryFile extends MemoryFsEntity implements File { ); } - overrides._entities.set(path, file); + _fs.set(path, file); } @override Future writeAsString(String contents, {FileMode mode = FileMode.write, Encoding encoding = utf8, - bool flush = false}) { + bool flush = false}) async { writeAsStringSync(contents, mode: mode, encoding: encoding, flush: flush); - return Future.value(this); + return this; } @override @@ -295,7 +247,7 @@ class MemoryFile extends MemoryFsEntity implements File { @override FileStat statSync() { - return MemoryFileStat(overrides, path); + return MemoryFileStat(_fs, path); } @override diff --git a/packages/edge_io/lib/src/adapters/memory/file_stat.dart b/packages/edge_io/lib/src/adapters/memory/file_stat.dart index 680f07a..2f3fca8 100644 --- a/packages/edge_io/lib/src/adapters/memory/file_stat.dart +++ b/packages/edge_io/lib/src/adapters/memory/file_stat.dart @@ -1,12 +1,11 @@ part of edge_io.memory; class MemoryFileStat implements FileStat { - final MemoryFsOverrides _overrides; + final MemoryFileSystem _fs; final String _path; final MemoryFsImplementation? _impl; - MemoryFileStat(this._overrides, this._path) - : _impl = _overrides._entities.get(_path); + MemoryFileStat(this._fs, this._path) : _impl = _fs.get(_path); DateTime get defaultDateTime => DateTime.fromMillisecondsSinceEpoch(0); @@ -62,7 +61,7 @@ class MemoryFileStat implements FileStat { } @override - int get mode => 777; + int get mode => 777; // TODO: Do we care about this? @override String modeString() { diff --git a/packages/edge_io/lib/src/adapters/memory/file_system.dart b/packages/edge_io/lib/src/adapters/memory/file_system.dart new file mode 100644 index 0000000..d062712 --- /dev/null +++ b/packages/edge_io/lib/src/adapters/memory/file_system.dart @@ -0,0 +1,62 @@ +import 'package:path/path.dart' as p; +import 'impl/directory_impl.dart'; +import 'impl/implementation.dart'; +import 'utils.dart'; + +class MemoryFileSystem { + final String basePath; + + MemoryFileSystem(this.basePath); + + final Map _entities = {}; + + void clear() { + _entities.clear(); + } + + String join(String path) { + return p.join(basePath, path); + } + + void remove(String path) { + _entities.remove(join(path)); + } + + void set(String path, MemoryFsImplementation impl) { + _entities[join(path)] = impl; + } + + void setRecursively(String path, MemoryFsImplementation impl) { + final chunks = p.split(path); + + for (var i = 0; i < chunks.length; i++) { + final currentPath = p.joinAll(chunks.sublist(0, i + 1)); + + if (i == chunks.length - 1) { + set(path, impl); + } else { + if (get(currentPath) != null) { + assertIsDirectory(this, currentPath); + } + + set(currentPath, MemoryDirectoryImplementation()); + } + } + + _entities[join(path)] = impl; + } + + T? get(String path) { + final impl = _entities[join(path)]; + + if (impl is! T) { + return null; + } + + return impl; + } + + Map toMap() { + return _entities; + } +} diff --git a/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart index 00a17dc..e368450 100644 --- a/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart +++ b/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart @@ -3,13 +3,16 @@ library edge_io.memory; import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; -import 'package:path/path.dart' as p; +import 'dart:math' as math show min; import '../../streamed_io_sink.dart'; import '../../streamed_stdout.dart'; +import 'file_system.dart'; import 'impl/directory_impl.dart'; import 'impl/implementation.dart'; import 'impl/file_impl.dart'; +import 'random_access_file.dart'; +import 'utils.dart'; part 'entity.dart'; part 'directory.dart'; @@ -17,27 +20,27 @@ part 'file.dart'; part 'file_stat.dart'; class MemoryFsOverrides extends IOOverrides { - final Entities _entities; + final MemoryFileSystem _fs; final Stdout _stdout; MemoryFsOverrides({ String? basePath, Stdout? stdout, - }) : _entities = Entities(basePath ?? '/'), + }) : _fs = MemoryFileSystem(basePath ?? '/'), _stdout = stdout ?? StreamedStdout(); void clear() { - _entities.clear(); + _fs.clear(); } @override Directory createDirectory(String path) { - return MemoryDirectory._(this, path); + return MemoryDirectory._(_fs, path); } @override File createFile(String path) { - return MemoryFile._(this, path); + return MemoryFile._(_fs, path); } @override @@ -60,7 +63,7 @@ class MemoryFsOverrides extends IOOverrides { @override FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { - final entity = _entities.get(path); + final entity = _fs.get(path); if (entity is MemoryDirectoryImplementation) { return FileSystemEntityType.directory; @@ -86,7 +89,7 @@ class MemoryFsOverrides extends IOOverrides { @override Directory getCurrentDirectory() { - return MemoryDirectory._(this, _entities.basePath); + return MemoryDirectory._(_fs, _fs.basePath); } @override @@ -120,12 +123,12 @@ class MemoryFsOverrides extends IOOverrides { @override Future stat(String path) { - return Future.value(MemoryFileStat(this, path)); + return Future.value(statSync(path)); } @override FileStat statSync(String path) { - return MemoryFileStat(this, path); + return MemoryFileStat(_fs, path); } @override @@ -137,46 +140,3 @@ class MemoryFsOverrides extends IOOverrides { @override Stdout get stdout => _stdout; } - -class Entities { - final String basePath; - - Entities(this.basePath); - - final Map _entities = {}; - - void clear() { - _entities.clear(); - } - - String join(String path) { - return p.join(basePath, path); - } - - void remove(String path) { - _entities.remove(join(path)); - } - - void set(String path, MemoryFsImplementation impl) { - _entities[join(path)] = impl; - } - - T? get(String path) { - final impl = _entities[join(path)]; - - if (impl == null) { - return null; - } - - if (impl is! T) { - throw FileSystemException( - 'Entity at path is not a ${T.runtimeType}', path); - } - - return impl; - } - - Map toMap() { - return _entities; - } -} diff --git a/packages/edge_io/lib/src/adapters/memory/random_access_file.dart b/packages/edge_io/lib/src/adapters/memory/random_access_file.dart new file mode 100644 index 0000000..89d3ce7 --- /dev/null +++ b/packages/edge_io/lib/src/adapters/memory/random_access_file.dart @@ -0,0 +1,206 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:edge_io/src/adapters/memory/file_system.dart'; + +class MemoryRandomAccessFile implements RandomAccessFile { + final MemoryFileSystem _fs; + final String _path; + final FileMode _mode; + + MemoryRandomAccessFile( + this._fs, + this._path, { + required FileMode mode, + }) : _mode = mode; + + bool _isOpen = true; + int _position = 0; + + @override + Future close() async { + closeSync(); + } + + @override + void closeSync() {} + + @override + Future flush() async { + flushSync(); + return this; + } + + @override + void flushSync() { + throw UnimplementedError(); + } + + @override + Future length() { + return Future.value(lengthSync()); + } + + @override + int lengthSync() { + // TODO: implement lengthSync + throw UnimplementedError(); + } + + @override + Future lock( + [FileLock mode = FileLock.exclusive, int start = 0, int end = -1]) async { + lockSync(mode, start, end); + return this; + } + + @override + void lockSync( + [FileLock mode = FileLock.exclusive, int start = 0, int end = -1]) { + // TODO: implement lockSync + throw UnimplementedError(); + } + + @override + String get path => throw UnimplementedError(); + + @override + Future position() { + return Future.value(positionSync()); + } + + @override + int positionSync() { + throw UnimplementedError(); + } + + @override + Future read(int count) { + return Future.value(readSync(count)); + } + + @override + Uint8List readSync(int count) { + throw UnimplementedError(); + } + + @override + Future readByte() { + return Future.value(readByteSync()); + } + + @override + int readByteSync() { + throw UnimplementedError(); + } + + @override + Future readInto(List buffer, [int start = 0, int? end]) { + return Future.value(readIntoSync(buffer, start, end)); + } + + @override + int readIntoSync(List buffer, [int start = 0, int? end]) { + throw UnimplementedError(); + } + + @override + Future setPosition(int position) async { + setPositionSync(position); + return this; + } + + @override + void setPositionSync(int position) { + throw UnimplementedError(); + } + + @override + Future truncate(int length) async { + truncateSync(length); + return this; + } + + @override + void truncateSync(int length) { + throw UnimplementedError(); + } + + @override + Future unlock([int start = 0, int end = -1]) async { + unlockSync(start, end); + return this; + } + + @override + void unlockSync([int start = 0, int end = -1]) { + throw UnimplementedError(); + } + + @override + Future writeByte(int value) async { + writeByteSync(value); + return this; + } + + @override + int writeByteSync(int value) { + throw UnimplementedError(); + } + + @override + Future writeFrom(List buffer, + [int start = 0, int? end]) async { + writeFromSync(buffer, start, end); + return this; + } + + @override + void writeFromSync(List buffer, [int start = 0, int? end]) { + throw UnimplementedError(); + } + + @override + Future writeString(String string, + {Encoding encoding = utf8}) async { + writeStringSync(string, encoding: encoding); + return this; + } + + @override + void writeStringSync(String string, {Encoding encoding = utf8}) { + throw UnimplementedError(); + } + + void _assertIsOpen() { + if (!_isOpen) { + throw FileSystemException('File closed', _path); + } + } + + void _assertIsReadable(String operation) { + switch (_mode) { + case FileMode.read: + case FileMode.write: + case FileMode.append: + break; + default: + // TODO better error + throw FileSystemException('$operation failed'); + } + } + + void _assertIsWriteable(String operation) { + switch (_mode) { + case FileMode.write: + case FileMode.append: + case FileMode.writeOnly: + case FileMode.writeOnlyAppend: + break; + default: + // TODO better error + throw FileSystemException('$operation failed'); + } + } +} diff --git a/packages/edge_io/lib/src/adapters/memory/utils.dart b/packages/edge_io/lib/src/adapters/memory/utils.dart new file mode 100644 index 0000000..3f4dde3 --- /dev/null +++ b/packages/edge_io/lib/src/adapters/memory/utils.dart @@ -0,0 +1,110 @@ +import 'dart:io'; + +import 'package:path/path.dart' as p; +import 'file_system.dart'; +import 'impl/directory_impl.dart'; +import 'impl/file_impl.dart'; +import 'impl/implementation.dart'; + +/// Ensures that the node exists. +T assertExists( + MemoryFileSystem fs, String path, + [String message = ""]) { + final current = fs.get(path); + + if (current == null) { + throw PathNotFoundException( + path, + OSError("No such file or directory", 2), + message, + ); + } + + return current; +} + +/// Ensures that the node exists. +void assertFileDoesNotExist( + MemoryFileSystem fs, String path, + [String message = ""]) { + final current = fs.get(path); + + if (current != null) { + throw FileSystemException( + message, + path, + OSError("File exists", 17), + ); + } +} + +/// Ensures that the file exists and is a file, throwing a [FileSystemException] +/// if it is not. +MemoryFileImplementation assertIsFile(MemoryFileSystem fs, String path, + [String message = ""]) { + final impl = assertExists(fs, path, message); + + if (impl is! MemoryFileImplementation) { + throw FileSystemException( + message, + path, + OSError("Not a file", 21), + ); + } + + return impl; +} + +/// Ensures that the directory exists and is a file, throwing a [FileSystemException] +/// if it is not. +MemoryDirectoryImplementation assertIsDirectory( + MemoryFileSystem fs, String path, + [String message = ""]) { + final impl = assertExists(fs, path, message); + + if (impl is! MemoryDirectoryImplementation) { + throw FileSystemException( + message, + path, + OSError("Not a directory", 21), + ); + } + + return impl; +} + +/// Ensures that the directory exists and is a file, throwing a [FileSystemException] +/// if it is not. +MemoryDirectoryImplementation assertDirectoryIsEmpty( + MemoryFileSystem fs, String path, + [String message = ""]) { + final dir = assertIsDirectory(fs, path, message); + + for (final key in fs.toMap().keys) { + if (key.startsWith(path) && key != path) { + throw FileSystemException( + message, + path, + OSError("Directory not empty", 66), + ); + } + } + + return dir; +} + +MemoryDirectoryImplementation assertParentDirectory( + MemoryFileSystem fs, String path, + [String message = ""]) { + final parent = fs.get(p.dirname(path)); + + if (parent == null) { + throw FileSystemException( + message, + path, + OSError("Not a directory", 20), + ); + } + + return parent; +} diff --git a/packages/edge_io/test/_playground.dart b/packages/edge_io/test/_playground.dart index 78cb38c..54c6ef3 100644 --- a/packages/edge_io/test/_playground.dart +++ b/packages/edge_io/test/_playground.dart @@ -68,15 +68,53 @@ Future fileRead() async { } Future dirRename() async { + final d1 = tempDir(Directory('foo')); + await d1.create(recursive: true); + + final f1 = File(p.join(d1.path, 'baz.txt')); + f1.writeAsString('foo'); + + await d1.rename('bar'); + print(f1.existsSync()); + + // await d1.create(recursive: true); + // await d1.create(recursive: true); + // final dir1 = tempDir(Directory('foo')); + // await dir1.create(recursive: true); + // // await dir1.create(recursive: true); + // final f1 = File(p.join(dir1.path, 'baz')); + // f1.createSync(recursive: true); + // f1.renameSync(p.join(dir1.path, 'bar', 'baz')); + + // var f2 = File(p.join(dir1.path, 'bar.txt', 'baz.txt')); + // f1.renameSync(p.join(dir1.path, 'bar.txt', 'baz.txt')); + + // f1.writeAsStringSync('f1'); + // // f1.createSync(recursive: true); + + // var f2 = File(p.join(dir1.path, 'file2.txt')); + // f2.writeAsStringSync('fffff'); + + // // f1.openWrite(); + // f1.copySync(f2.path); + // print(f1.readAsStringSync()); + // print(f2.readAsStringSync()); + // f1.createSync(recursive: true); + // print(f1.path); + // f1 = f1.renameSync('bar/bax'); + // print(f1.path); + + // print(f1.readAsStringSync()); + // // final dir2 = Directory(dir1.path + '/bar'); // await dir1.create(recursive: true); // await Future.delayed(Duration(seconds: 3)); // // await dir2.create(recursive: true); // print(await dir1.stat()); - final f1 = tempFile(File('file1.txt')); - print(f1.parent); + // final f1 = tempFile(File('file1.txt')); + // print(f1.parent); // final sink = f1.openWrite(); // // sink.addError(Exception('foo')); // sink.add([1, 2, 3, 4, 5]); From e3f75eef082fcf71f9cdb22c57104ec8aac07b4c Mon Sep 17 00:00:00 2001 From: Andrei Lesnitsky Date: Tue, 4 Apr 2023 10:10:32 +0200 Subject: [PATCH 10/19] wip --- packages/edge_io/bin/test.dart | 11 + packages/edge_io/lib/edge_io.dart | 133 +++++++++ .../lib/file_system_platform_interface.dart | 23 ++ .../lib/fs_adapter_platform_interface.dart | 45 +++ packages/edge_io/lib/memory.dart | 3 - .../lib/src/adapters/memory/directory.dart | 136 --------- .../lib/src/adapters/memory/entity.dart | 91 ------ .../edge_io/lib/src/adapters/memory/file.dart | 258 ------------------ .../lib/src/adapters/memory/file_stat.dart | 115 -------- .../lib/src/adapters/memory/file_system.dart | 62 ----- .../adapters/memory/impl/directory_impl.dart | 3 - .../src/adapters/memory/impl/file_impl.dart | 8 - .../adapters/memory/impl/implementation.dart | 1 - .../src/adapters/memory/memory_adapter.dart | 142 ---------- .../adapters/memory/random_access_file.dart | 206 -------------- .../lib/src/adapters/memory/utils.dart | 110 -------- .../edge_io/lib/src/memory_directory.dart | 85 ++++++ packages/edge_io/lib/src/memory_fs.dart | 148 ++++++++++ .../edge_io/lib/src/memory_fs_adapter.dart | 86 ++++++ packages/edge_io/lib/src/memory_fse.dart | 45 +++ packages/edge_io/lib/src/memory_link.dart | 51 ++++ packages/edge_io/lib/src/memory_stat.dart | 50 ++++ .../edge_io/lib/src/streamed_io_sink.dart | 65 ----- packages/edge_io/lib/src/streamed_stdout.dart | 77 ------ packages/edge_io/pubspec.lock | 16 +- packages/edge_io/pubspec.yaml | 2 +- packages/edge_io/test/_playground.dart | 123 --------- packages/edge_io/test/file_test.dart | 10 + packages/edge_io/test/memory_test.dart | 179 ------------ 29 files changed, 696 insertions(+), 1588 deletions(-) create mode 100644 packages/edge_io/bin/test.dart create mode 100644 packages/edge_io/lib/edge_io.dart create mode 100644 packages/edge_io/lib/file_system_platform_interface.dart create mode 100644 packages/edge_io/lib/fs_adapter_platform_interface.dart delete mode 100644 packages/edge_io/lib/memory.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/directory.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/entity.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/file.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/file_stat.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/file_system.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/impl/directory_impl.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/impl/implementation.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/memory_adapter.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/random_access_file.dart delete mode 100644 packages/edge_io/lib/src/adapters/memory/utils.dart create mode 100644 packages/edge_io/lib/src/memory_directory.dart create mode 100644 packages/edge_io/lib/src/memory_fs.dart create mode 100644 packages/edge_io/lib/src/memory_fs_adapter.dart create mode 100644 packages/edge_io/lib/src/memory_fse.dart create mode 100644 packages/edge_io/lib/src/memory_link.dart create mode 100644 packages/edge_io/lib/src/memory_stat.dart delete mode 100644 packages/edge_io/lib/src/streamed_io_sink.dart delete mode 100644 packages/edge_io/lib/src/streamed_stdout.dart delete mode 100644 packages/edge_io/test/_playground.dart create mode 100644 packages/edge_io/test/file_test.dart delete mode 100644 packages/edge_io/test/memory_test.dart diff --git a/packages/edge_io/bin/test.dart b/packages/edge_io/bin/test.dart new file mode 100644 index 0000000..9026db9 --- /dev/null +++ b/packages/edge_io/bin/test.dart @@ -0,0 +1,11 @@ +import 'dart:io'; + +void main() { + final d = Directory.current; + + print(d.path); + + final temp = d.createTempSync(); + + print(temp.absolute.path); +} diff --git a/packages/edge_io/lib/edge_io.dart b/packages/edge_io/lib/edge_io.dart new file mode 100644 index 0000000..1deafa9 --- /dev/null +++ b/packages/edge_io/lib/edge_io.dart @@ -0,0 +1,133 @@ +import 'dart:io'; + +import 'package:edge_io/fs_adapter_platform_interface.dart'; + +import 'src/memory_fs_adapter.dart'; + +class EdgeIOOverrides implements IOOverrides { + final PlatformFSAdapter fsAdapter; + + EdgeIOOverrides({ + this.fsAdapter = const MemoryFSAdapter(), + }) { + fsAdapter.mount(); + } + + @override + Directory createDirectory(String path) { + final entity = fsAdapter.createEntity(path, FileSystemEntityType.directory); + return entity as Directory; + } + + @override + File createFile(String path) { + return fsAdapter.createEntity(path, FileSystemEntityType.file) as File; + } + + @override + Link createLink(String path) { + return fsAdapter.createEntity(path, FileSystemEntityType.link) as Link; + } + + @override + Stream fsWatch(String path, int events, bool recursive) { + return fsAdapter.watch(path, events, recursive); + } + + @override + bool fsWatchIsSupported() { + return fsAdapter.watchIsSupported(); + } + + @override + Future fseGetType(String path, bool followLinks) async { + return fsAdapter.getType(path, followLinks); + } + + @override + FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { + return fsAdapter.getType(path, followLinks); + } + + @override + Future fseIdentical(String path1, String path2) async { + return fsAdapter.identical(path1, path2); + } + + @override + bool fseIdenticalSync(String path1, String path2) { + return fsAdapter.identical(path1, path2); + } + + @override + Directory getCurrentDirectory() { + return fsAdapter.getCurrentDirectory(); + } + + @override + Directory getSystemTempDirectory() { + return fsAdapter.getSystemTempDirectory(); + } + + @override + Future serverSocketBind( + address, + int port, { + int backlog = 0, + bool v6Only = false, + bool shared = false, + }) { + // TODO: implement serverSocketBind + throw UnimplementedError(); + } + + @override + void setCurrentDirectory(String path) { + fsAdapter.setCurrentDirectory(path); + } + + @override + Future socketConnect( + host, + int port, { + sourceAddress, + int sourcePort = 0, + Duration? timeout, + }) { + // TODO: implement socketConnect + throw UnimplementedError(); + } + + @override + Future> socketStartConnect( + host, + int port, { + sourceAddress, + int sourcePort = 0, + }) { + // TODO: implement socketStartConnect + throw UnimplementedError(); + } + + @override + Future stat(String path) async { + return fsAdapter.stat(path); + } + + @override + FileStat statSync(String path) { + return fsAdapter.stat(path); + } + + @override + // TODO: implement stderr + Stdout get stderr => throw UnimplementedError(); + + @override + // TODO: implement stdin + Stdin get stdin => throw UnimplementedError(); + + @override + // TODO: implement stdout + Stdout get stdout => throw UnimplementedError(); +} diff --git a/packages/edge_io/lib/file_system_platform_interface.dart b/packages/edge_io/lib/file_system_platform_interface.dart new file mode 100644 index 0000000..c3efb22 --- /dev/null +++ b/packages/edge_io/lib/file_system_platform_interface.dart @@ -0,0 +1,23 @@ +import 'dart:io'; + +abstract class FileSystemPlatform { + Directory get cwd; + set cwd(Directory directory); + + bool exists(String path, FileSystemEntityType type); + T rename(String path, String newPath); + T create( + String path, + T entity, { + bool recursive = false, + }); + + T getEntity(String path); + FileStat stat(T entity); + + Iterable list( + String path, { + bool recursive = false, + bool followLinks = true, + }); +} diff --git a/packages/edge_io/lib/fs_adapter_platform_interface.dart b/packages/edge_io/lib/fs_adapter_platform_interface.dart new file mode 100644 index 0000000..4ab9f45 --- /dev/null +++ b/packages/edge_io/lib/fs_adapter_platform_interface.dart @@ -0,0 +1,45 @@ +import 'dart:io'; + +import 'package:edge_io/file_system_platform_interface.dart'; + +abstract class PlatformFSAdapter { + const PlatformFSAdapter(); + + T get fs; + + FileSystemEntity createEntity(String path, FileSystemEntityType type) { + throw UnimplementedError(); + } + + Stream watch(String path, int events, bool recursive) { + throw UnimplementedError(); + } + + bool watchIsSupported() { + throw UnimplementedError(); + } + + FileSystemEntityType getType(String path, bool followLinks) { + throw UnimplementedError(); + } + + bool identical(String path1, String path2) { + throw UnimplementedError(); + } + + Directory getCurrentDirectory() { + throw UnimplementedError(); + } + + Directory getSystemTempDirectory() { + throw UnimplementedError(); + } + + void setCurrentDirectory(String path) { + throw UnimplementedError(); + } + + FileStat stat(String path) { + throw UnimplementedError(); + } +} diff --git a/packages/edge_io/lib/memory.dart b/packages/edge_io/lib/memory.dart deleted file mode 100644 index adf44c8..0000000 --- a/packages/edge_io/lib/memory.dart +++ /dev/null @@ -1,3 +0,0 @@ -library memory; - -export 'src/adapters/memory/memory_adapter.dart'; diff --git a/packages/edge_io/lib/src/adapters/memory/directory.dart b/packages/edge_io/lib/src/adapters/memory/directory.dart deleted file mode 100644 index 76c2e4e..0000000 --- a/packages/edge_io/lib/src/adapters/memory/directory.dart +++ /dev/null @@ -1,136 +0,0 @@ -part of edge_io.memory; - -class MemoryDirectory extends MemoryFsEntity implements Directory { - MemoryDirectory._(super._fs, super.path); - - @override - bool existsSync() { - return _fs.get(path) != null; - } - - @override - Future rename(String newPath) { - return Future.value(renameSync(newPath)); - } - - @override - Directory renameSync(String newPath) { - final dir = assertDirectoryIsEmpty(_fs, path, 'Rename failed'); - - final newDir = MemoryDirectory._(_fs, newPath); - newDir.createSync(); - - _fs.remove(path); // Remove the old directory. - _fs.set(newPath, dir); - - return MemoryDirectory._(_fs, newPath); - } - - @override - Directory get absolute => throw UnimplementedError(); - - @override - Future create({bool recursive = false}) async { - createSync(recursive: recursive); - return this; - } - - @override - void createSync({bool recursive = false}) { - // If recursive is false, we should check whether this directory has a parent, - // and if not, throw an error. - if (!recursive && _segments.length > 1 && _parentNode == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Creation failed", - ); - } - - final existing = _fs.get(path); - - if (existing != null) { - return; - } - - _fs.set(path, MemoryDirectoryImplementation()); - } - - @override - Future createTemp([String? prefix]) async { - return Future.value(createTempSync(prefix)); - } - - @override - Directory createTempSync([String? prefix]) { - throw UnimplementedError(); - } - - @override - Stream list( - {bool recursive = false, bool followLinks = true}) { - return Stream.fromIterable( - listSync(recursive: recursive, followLinks: followLinks)); - } - - @override - List listSync( - {bool recursive = false, bool followLinks = true}) { - final existing = _fs.get(path); - - if (existing == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - "Directory listing failed", - ); - } - - final map = _fs.toMap(); - final entities = []; - - FileSystemEntity toEntity(MemoryFsImplementation impl) { - if (impl is MemoryFileImplementation) { - return MemoryFile._(_fs, path); - } else if (impl is MemoryDirectoryImplementation) { - return MemoryDirectory._(_fs, path); - } else { - throw StateError("Unknown entity type"); - } - } - - // TODO: followLinks - if (recursive) { - for (final entry in map.entries) { - if (entry.key.startsWith(path)) { - entities.add(toEntity(entry.value!)); - } - } - } else { - for (final entry in map.entries) { - if (entry.key.startsWith(path) && - entry.key.split("/").length == path.split("/").length + 1) { - entities.add(toEntity(entry.value!)); - } - } - } - - return entities; - } - - @override - String resolveSymbolicLinksSync() { - throw UnimplementedError('Directory.resolveSymbolicLinksSync'); - } - - @override - FileStat statSync() { - return MemoryFileStat(_fs, path); - } - - @override - Stream watch( - {int events = FileSystemEvent.all, bool recursive = false}) { - throw UnimplementedError('Directory.watch'); - } -} diff --git a/packages/edge_io/lib/src/adapters/memory/entity.dart b/packages/edge_io/lib/src/adapters/memory/entity.dart deleted file mode 100644 index f50f422..0000000 --- a/packages/edge_io/lib/src/adapters/memory/entity.dart +++ /dev/null @@ -1,91 +0,0 @@ -part of edge_io.memory; - -abstract class MemoryFsEntity implements FileSystemEntity { - final MemoryFileSystem _fs; - - @override - final String path; - - MemoryFsEntity(this._fs, this.path); - - /// Cached list of segments in the path. - List? _cachedSegments; - - /// Returns the segments in the path. - List get _segments => _cachedSegments ??= path.split('/'); - - /// Returns the parent node of the entity. - MemoryFsImplementation? get _parentNode { - if (_segments.length == 1) { - return null; - } - - final parentPath = _segments.sublist(0, _segments.length - 1).join('/'); - return _fs.get(parentPath); - } - - @override - FileSystemEntity get absolute => throw UnimplementedError(); - - @override - Future delete({bool recursive = false}) async { - deleteSync(recursive: recursive); - return this; - } - - @override - void deleteSync({bool recursive = false}) { - _fs.remove(path); - } - - @override - Future exists() { - return Future.value(existsSync()); - } - - @override - bool existsSync(); - - @override - bool get isAbsolute => true; - - @override - Directory get parent { - if (_parentNode == null) { - return Directory('.'); - } - - return Directory(_segments.sublist(0, _segments.length - 1).join('/')); - } - - @override - Future rename(String newPath) { - return Future.value(renameSync(newPath)); - } - - @override - FileSystemEntity renameSync(String newPath); - - @override - Future resolveSymbolicLinks() { - return Future.value(resolveSymbolicLinksSync()); - } - - @override - String resolveSymbolicLinksSync(); - - @override - Future stat() { - return Future.value(statSync()); - } - - @override - FileStat statSync(); - - @override - Uri get uri => Uri.file(path); - - @override - Stream watch( - {int events = FileSystemEvent.all, bool recursive = false}); -} diff --git a/packages/edge_io/lib/src/adapters/memory/file.dart b/packages/edge_io/lib/src/adapters/memory/file.dart deleted file mode 100644 index d9db308..0000000 --- a/packages/edge_io/lib/src/adapters/memory/file.dart +++ /dev/null @@ -1,258 +0,0 @@ -part of edge_io.memory; - -/// A file in the memory file system. -class MemoryFile extends MemoryFsEntity implements File { - /// Creates a new file. - MemoryFile._(super._fs, super.path); - - @override - Future rename(String newPath) { - return Future.value(renameSync(newPath)); - } - - @override - File renameSync(String newPath) { - final file = assertIsFile(_fs, path, 'Cannot rename file to "$newPath"'); - - final newFile = MemoryFile._(_fs, newPath); - newFile.createSync(); - - _fs.remove(path); // Remove the old file. - _fs.set(newPath, file); // Copy the new file over - - return newFile; - } - - // TODO should this use Directory.current, which uses basePath? - @override - File get absolute => this; - - @override - bool existsSync() { - return _fs.get(path) != null; - } - - @override - Future copy(String newPath) { - return Future.value(copySync(newPath)); - } - - @override - File copySync(String newPath) { - final file = assertIsFile(_fs, path, 'Cannot rename file to "$newPath"'); - - final newFile = MemoryFile._(_fs, newPath); - newFile.createSync(); - - _fs.set(newPath, file); // Copy the new file over - - return newFile; - } - - @override - Future create({bool recursive = false, bool exclusive = false}) async { - createSync(recursive: recursive, exclusive: exclusive); - return this; - } - - @override - void createSync({bool recursive = false, bool exclusive = false}) { - if (!recursive) assertParentDirectory(_fs, path); - if (exclusive) assertFileDoesNotExist(_fs, path, 'Cannot create file'); - - if (recursive) { - _fs.setRecursively(path, MemoryFileImplementation()); - } else { - _fs.set(path, MemoryFileImplementation()); - } - } - - @override - Future lastAccessed() { - return Future.value(lastAccessedSync()); - } - - @override - DateTime lastAccessedSync() { - return assertIsFile(_fs, path, 'Cannot retrieve access time').lastAccessed; - } - - @override - Future lastModified() { - return Future.value(lastModifiedSync()); - } - - @override - DateTime lastModifiedSync() { - return assertIsFile(_fs, path, 'Cannot retrieve modification time') - .lastModified; - } - - @override - Future length() { - return Future.value(lengthSync()); - } - - @override - int lengthSync() { - assertIsFile(_fs, path, 'Cannot retrieve length of file'); - return readAsBytesSync().length; - } - - @override - Future open({FileMode mode = FileMode.read}) { - return Future.value(openSync(mode: mode)); - } - - @override - Stream> openRead([int? start, int? end]) { - Uint8List bytes = readAsBytesSync(); - - if (start != null) { - bytes = end == null - ? bytes.sublist(start) - : bytes.sublist(start, math.min(end, bytes.length)); - } - - return Stream.value(bytes.sublist(start ?? 0, end)); - } - - @override - RandomAccessFile openSync({FileMode mode = FileMode.read}) { - assertIsFile(_fs, path, 'Cannot open file'); - return MemoryRandomAccessFile(_fs, path, mode: mode); - } - - @override - IOSink openWrite({FileMode mode = FileMode.write, Encoding encoding = utf8}) { - assertIsFile(_fs, path, 'Cannot open file'); - return StreamedIOSink(this, encoding: encoding); - } - - @override - Future readAsBytes() { - return Future.value(readAsBytesSync()); - } - - @override - Uint8List readAsBytesSync() { - final file = assertIsFile(_fs, path, 'Cannot open file'); - return Uint8List.fromList(file.bytes); - } - - @override - Future> readAsLines({Encoding encoding = utf8}) { - return Future.value(readAsLinesSync(encoding: encoding)); - } - - @override - List readAsLinesSync({Encoding encoding = utf8}) { - final value = readAsStringSync(encoding: encoding); - return LineSplitter.split(value).toList(); - } - - @override - Future readAsString({Encoding encoding = utf8}) { - return Future.value(readAsStringSync(encoding: encoding)); - } - - @override - String readAsStringSync({Encoding encoding = utf8}) { - return utf8.decode(readAsBytesSync()); - } - - @override - Future setLastAccessed(DateTime time) async { - setLastAccessedSync(time); - } - - @override - void setLastAccessedSync(DateTime time) { - final file = assertIsFile(_fs, path, 'Cannot set access time'); - file.lastAccessed = time; - } - - @override - Future setLastModified(DateTime time) async { - setLastModifiedSync(time); - } - - @override - void setLastModifiedSync(DateTime time) { - final file = - assertIsFile(_fs, path, 'Failed to set file modification time'); - file.lastModified = time; - } - - @override - Future writeAsBytes(List bytes, - {FileMode mode = FileMode.write, bool flush = false}) { - writeAsBytesSync(bytes, mode: mode, flush: flush); - return Future.value(this); - } - - @override - void writeAsBytesSync(List bytes, - {FileMode mode = FileMode.write, bool flush = false}) { - final existing = _fs.get(path); - - // If nothing exists, attempt create a new file. - if (existing == null) { - createSync(); - } - - final file = existing ?? MemoryFileImplementation(); - - switch (mode) { - case FileMode.write: - case FileMode.writeOnly: - file.bytes = bytes; - break; - case FileMode.append: - case FileMode.writeOnlyAppend: - file.bytes.addAll(bytes); - break; - case FileMode.read: - throw FileSystemException( - 'Cannot write to file in read mode', - path, - OSError('Invalid argument', 22), - ); - } - - _fs.set(path, file); - } - - @override - Future writeAsString(String contents, - {FileMode mode = FileMode.write, - Encoding encoding = utf8, - bool flush = false}) async { - writeAsStringSync(contents, mode: mode, encoding: encoding, flush: flush); - return this; - } - - @override - void writeAsStringSync(String contents, - {FileMode mode = FileMode.write, - Encoding encoding = utf8, - bool flush = false}) { - writeAsBytesSync(utf8.encode(contents), mode: mode, flush: flush); - } - - @override - String resolveSymbolicLinksSync() { - throw UnimplementedError('File.resolveSymbolicLinksSync'); - } - - @override - FileStat statSync() { - return MemoryFileStat(_fs, path); - } - - @override - Stream watch( - {int events = FileSystemEvent.all, bool recursive = false}) { - throw UnimplementedError('File.watch'); - } -} diff --git a/packages/edge_io/lib/src/adapters/memory/file_stat.dart b/packages/edge_io/lib/src/adapters/memory/file_stat.dart deleted file mode 100644 index 2f3fca8..0000000 --- a/packages/edge_io/lib/src/adapters/memory/file_stat.dart +++ /dev/null @@ -1,115 +0,0 @@ -part of edge_io.memory; - -class MemoryFileStat implements FileStat { - final MemoryFileSystem _fs; - final String _path; - final MemoryFsImplementation? _impl; - - MemoryFileStat(this._fs, this._path) : _impl = _fs.get(_path); - - DateTime get defaultDateTime => DateTime.fromMillisecondsSinceEpoch(0); - - @override - DateTime get accessed { - if (_impl == null) { - return defaultDateTime; - } - - if (_impl is MemoryFileImplementation) { - return (_impl as MemoryFileImplementation).lastAccessed; - } - - if (_impl is MemoryDirectoryImplementation) { - return DateTime.now(); - } - - throw UnimplementedError(); - } - - @override - DateTime get modified { - if (_impl == null) { - return defaultDateTime; - } - - if (_impl is MemoryFileImplementation) { - return (_impl as MemoryFileImplementation).lastModified; - } - - if (_impl is MemoryDirectoryImplementation) { - return DateTime.now(); - } - - throw UnimplementedError(); - } - - @override - DateTime get changed { - if (_impl == null) { - return defaultDateTime; - } - - if (_impl is MemoryFileImplementation) { - return (_impl as MemoryFileImplementation).changed; - } - - if (_impl is MemoryDirectoryImplementation) { - return DateTime.now(); - } - - throw UnimplementedError(); - } - - @override - int get mode => 777; // TODO: Do we care about this? - - @override - String modeString() { - if (_impl == null) { - return '---------'; - } - - var permissions = mode & 0xFFF; - var codes = const ['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx']; - var result = []; - if ((permissions & 0x800) != 0) result.add("(suid) "); - if ((permissions & 0x400) != 0) result.add("(guid) "); - if ((permissions & 0x200) != 0) result.add("(sticky) "); - result - ..add(codes[(permissions >> 6) & 0x7]) - ..add(codes[(permissions >> 3) & 0x7]) - ..add(codes[permissions & 0x7]); - return result.join(); - } - - @override - int get size { - if (_impl == null) { - return -1; - } - - if (_impl is MemoryFileImplementation) { - return (_impl as MemoryFileImplementation).bytes.length; - } - - throw UnimplementedError( - 'TODO: implement size for MemoryDirectoryImplementation'); - } - - @override - FileSystemEntityType get type { - if (_impl is MemoryDirectoryImplementation) { - return FileSystemEntityType.directory; - } - - if (_impl is MemoryFileImplementation) { - return FileSystemEntityType.file; - } - - // if (_impl is MemoryLink) { - // return FileSystemEntityType.link; - // } - - return FileSystemEntityType.notFound; - } -} diff --git a/packages/edge_io/lib/src/adapters/memory/file_system.dart b/packages/edge_io/lib/src/adapters/memory/file_system.dart deleted file mode 100644 index d062712..0000000 --- a/packages/edge_io/lib/src/adapters/memory/file_system.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:path/path.dart' as p; -import 'impl/directory_impl.dart'; -import 'impl/implementation.dart'; -import 'utils.dart'; - -class MemoryFileSystem { - final String basePath; - - MemoryFileSystem(this.basePath); - - final Map _entities = {}; - - void clear() { - _entities.clear(); - } - - String join(String path) { - return p.join(basePath, path); - } - - void remove(String path) { - _entities.remove(join(path)); - } - - void set(String path, MemoryFsImplementation impl) { - _entities[join(path)] = impl; - } - - void setRecursively(String path, MemoryFsImplementation impl) { - final chunks = p.split(path); - - for (var i = 0; i < chunks.length; i++) { - final currentPath = p.joinAll(chunks.sublist(0, i + 1)); - - if (i == chunks.length - 1) { - set(path, impl); - } else { - if (get(currentPath) != null) { - assertIsDirectory(this, currentPath); - } - - set(currentPath, MemoryDirectoryImplementation()); - } - } - - _entities[join(path)] = impl; - } - - T? get(String path) { - final impl = _entities[join(path)]; - - if (impl is! T) { - return null; - } - - return impl; - } - - Map toMap() { - return _entities; - } -} diff --git a/packages/edge_io/lib/src/adapters/memory/impl/directory_impl.dart b/packages/edge_io/lib/src/adapters/memory/impl/directory_impl.dart deleted file mode 100644 index 93e46d4..0000000 --- a/packages/edge_io/lib/src/adapters/memory/impl/directory_impl.dart +++ /dev/null @@ -1,3 +0,0 @@ -import 'implementation.dart'; - -class MemoryDirectoryImplementation extends MemoryFsImplementation {} diff --git a/packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart b/packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart deleted file mode 100644 index 73e2341..0000000 --- a/packages/edge_io/lib/src/adapters/memory/impl/file_impl.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'implementation.dart'; - -class MemoryFileImplementation extends MemoryFsImplementation { - List bytes = []; - DateTime lastAccessed = DateTime.now(); - DateTime lastModified = DateTime.now(); - DateTime changed = DateTime.now(); -} diff --git a/packages/edge_io/lib/src/adapters/memory/impl/implementation.dart b/packages/edge_io/lib/src/adapters/memory/impl/implementation.dart deleted file mode 100644 index 516b6fc..0000000 --- a/packages/edge_io/lib/src/adapters/memory/impl/implementation.dart +++ /dev/null @@ -1 +0,0 @@ -abstract class MemoryFsImplementation {} diff --git a/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart b/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart deleted file mode 100644 index e368450..0000000 --- a/packages/edge_io/lib/src/adapters/memory/memory_adapter.dart +++ /dev/null @@ -1,142 +0,0 @@ -library edge_io.memory; - -import 'dart:convert'; -import 'dart:io'; -import 'dart:typed_data'; -import 'dart:math' as math show min; - -import '../../streamed_io_sink.dart'; -import '../../streamed_stdout.dart'; -import 'file_system.dart'; -import 'impl/directory_impl.dart'; -import 'impl/implementation.dart'; -import 'impl/file_impl.dart'; -import 'random_access_file.dart'; -import 'utils.dart'; - -part 'entity.dart'; -part 'directory.dart'; -part 'file.dart'; -part 'file_stat.dart'; - -class MemoryFsOverrides extends IOOverrides { - final MemoryFileSystem _fs; - final Stdout _stdout; - - MemoryFsOverrides({ - String? basePath, - Stdout? stdout, - }) : _fs = MemoryFileSystem(basePath ?? '/'), - _stdout = stdout ?? StreamedStdout(); - - void clear() { - _fs.clear(); - } - - @override - Directory createDirectory(String path) { - return MemoryDirectory._(_fs, path); - } - - @override - File createFile(String path) { - return MemoryFile._(_fs, path); - } - - @override - Link createLink(String path) { - throw UnimplementedError('MemoryFsOverrides.createLink'); - } - - @override - Stream fsWatch(String path, int events, bool recursive) { - throw UnimplementedError('MemoryFsOverrides.fsWatch'); - } - - @override - bool fsWatchIsSupported() => false; - - @override - Future fseGetType(String path, bool followLinks) { - return Future.value(fseGetTypeSync(path, followLinks)); - } - - @override - FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { - final entity = _fs.get(path); - - if (entity is MemoryDirectoryImplementation) { - return FileSystemEntityType.directory; - } - - if (entity is MemoryFileImplementation) { - return FileSystemEntityType.file; - } - - return FileSystemEntityType.notFound; - } - - @override - Future fseIdentical(String path1, String path2) { - return Future.value(fseIdenticalSync(path1, path2)); - } - - @override - bool fseIdenticalSync(String path1, String path2) { - // This is probably lazy... - return path1 == path2; - } - - @override - Directory getCurrentDirectory() { - return MemoryDirectory._(_fs, _fs.basePath); - } - - @override - Directory getSystemTempDirectory() { - // TODO: implement getSystemTempDirectory - throw UnimplementedError(); - } - - @override - Future serverSocketBind(address, int port, - {int backlog = 0, bool v6Only = false, bool shared = false}) { - throw UnimplementedError('MemoryFsOverrides.serverSocketBind'); - } - - @override - void setCurrentDirectory(String path) { - throw UnimplementedError('MemoryFsOverrides.setCurrentDirectory'); - } - - @override - Future socketConnect(host, int port, - {sourceAddress, int sourcePort = 0, Duration? timeout}) { - throw UnimplementedError('MemoryFsOverrides.socketConnect'); - } - - @override - Future> socketStartConnect(host, int port, - {sourceAddress, int sourcePort = 0}) { - throw UnimplementedError('MemoryFsOverrides.socketStartConnect'); - } - - @override - Future stat(String path) { - return Future.value(statSync(path)); - } - - @override - FileStat statSync(String path) { - return MemoryFileStat(_fs, path); - } - - @override - Stdout get stderr => _stdout; - - @override - Stdin get stdin => throw UnimplementedError('MemoryFsOverrides.stdin'); - - @override - Stdout get stdout => _stdout; -} diff --git a/packages/edge_io/lib/src/adapters/memory/random_access_file.dart b/packages/edge_io/lib/src/adapters/memory/random_access_file.dart deleted file mode 100644 index 89d3ce7..0000000 --- a/packages/edge_io/lib/src/adapters/memory/random_access_file.dart +++ /dev/null @@ -1,206 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; -import 'dart:typed_data'; - -import 'package:edge_io/src/adapters/memory/file_system.dart'; - -class MemoryRandomAccessFile implements RandomAccessFile { - final MemoryFileSystem _fs; - final String _path; - final FileMode _mode; - - MemoryRandomAccessFile( - this._fs, - this._path, { - required FileMode mode, - }) : _mode = mode; - - bool _isOpen = true; - int _position = 0; - - @override - Future close() async { - closeSync(); - } - - @override - void closeSync() {} - - @override - Future flush() async { - flushSync(); - return this; - } - - @override - void flushSync() { - throw UnimplementedError(); - } - - @override - Future length() { - return Future.value(lengthSync()); - } - - @override - int lengthSync() { - // TODO: implement lengthSync - throw UnimplementedError(); - } - - @override - Future lock( - [FileLock mode = FileLock.exclusive, int start = 0, int end = -1]) async { - lockSync(mode, start, end); - return this; - } - - @override - void lockSync( - [FileLock mode = FileLock.exclusive, int start = 0, int end = -1]) { - // TODO: implement lockSync - throw UnimplementedError(); - } - - @override - String get path => throw UnimplementedError(); - - @override - Future position() { - return Future.value(positionSync()); - } - - @override - int positionSync() { - throw UnimplementedError(); - } - - @override - Future read(int count) { - return Future.value(readSync(count)); - } - - @override - Uint8List readSync(int count) { - throw UnimplementedError(); - } - - @override - Future readByte() { - return Future.value(readByteSync()); - } - - @override - int readByteSync() { - throw UnimplementedError(); - } - - @override - Future readInto(List buffer, [int start = 0, int? end]) { - return Future.value(readIntoSync(buffer, start, end)); - } - - @override - int readIntoSync(List buffer, [int start = 0, int? end]) { - throw UnimplementedError(); - } - - @override - Future setPosition(int position) async { - setPositionSync(position); - return this; - } - - @override - void setPositionSync(int position) { - throw UnimplementedError(); - } - - @override - Future truncate(int length) async { - truncateSync(length); - return this; - } - - @override - void truncateSync(int length) { - throw UnimplementedError(); - } - - @override - Future unlock([int start = 0, int end = -1]) async { - unlockSync(start, end); - return this; - } - - @override - void unlockSync([int start = 0, int end = -1]) { - throw UnimplementedError(); - } - - @override - Future writeByte(int value) async { - writeByteSync(value); - return this; - } - - @override - int writeByteSync(int value) { - throw UnimplementedError(); - } - - @override - Future writeFrom(List buffer, - [int start = 0, int? end]) async { - writeFromSync(buffer, start, end); - return this; - } - - @override - void writeFromSync(List buffer, [int start = 0, int? end]) { - throw UnimplementedError(); - } - - @override - Future writeString(String string, - {Encoding encoding = utf8}) async { - writeStringSync(string, encoding: encoding); - return this; - } - - @override - void writeStringSync(String string, {Encoding encoding = utf8}) { - throw UnimplementedError(); - } - - void _assertIsOpen() { - if (!_isOpen) { - throw FileSystemException('File closed', _path); - } - } - - void _assertIsReadable(String operation) { - switch (_mode) { - case FileMode.read: - case FileMode.write: - case FileMode.append: - break; - default: - // TODO better error - throw FileSystemException('$operation failed'); - } - } - - void _assertIsWriteable(String operation) { - switch (_mode) { - case FileMode.write: - case FileMode.append: - case FileMode.writeOnly: - case FileMode.writeOnlyAppend: - break; - default: - // TODO better error - throw FileSystemException('$operation failed'); - } - } -} diff --git a/packages/edge_io/lib/src/adapters/memory/utils.dart b/packages/edge_io/lib/src/adapters/memory/utils.dart deleted file mode 100644 index 3f4dde3..0000000 --- a/packages/edge_io/lib/src/adapters/memory/utils.dart +++ /dev/null @@ -1,110 +0,0 @@ -import 'dart:io'; - -import 'package:path/path.dart' as p; -import 'file_system.dart'; -import 'impl/directory_impl.dart'; -import 'impl/file_impl.dart'; -import 'impl/implementation.dart'; - -/// Ensures that the node exists. -T assertExists( - MemoryFileSystem fs, String path, - [String message = ""]) { - final current = fs.get(path); - - if (current == null) { - throw PathNotFoundException( - path, - OSError("No such file or directory", 2), - message, - ); - } - - return current; -} - -/// Ensures that the node exists. -void assertFileDoesNotExist( - MemoryFileSystem fs, String path, - [String message = ""]) { - final current = fs.get(path); - - if (current != null) { - throw FileSystemException( - message, - path, - OSError("File exists", 17), - ); - } -} - -/// Ensures that the file exists and is a file, throwing a [FileSystemException] -/// if it is not. -MemoryFileImplementation assertIsFile(MemoryFileSystem fs, String path, - [String message = ""]) { - final impl = assertExists(fs, path, message); - - if (impl is! MemoryFileImplementation) { - throw FileSystemException( - message, - path, - OSError("Not a file", 21), - ); - } - - return impl; -} - -/// Ensures that the directory exists and is a file, throwing a [FileSystemException] -/// if it is not. -MemoryDirectoryImplementation assertIsDirectory( - MemoryFileSystem fs, String path, - [String message = ""]) { - final impl = assertExists(fs, path, message); - - if (impl is! MemoryDirectoryImplementation) { - throw FileSystemException( - message, - path, - OSError("Not a directory", 21), - ); - } - - return impl; -} - -/// Ensures that the directory exists and is a file, throwing a [FileSystemException] -/// if it is not. -MemoryDirectoryImplementation assertDirectoryIsEmpty( - MemoryFileSystem fs, String path, - [String message = ""]) { - final dir = assertIsDirectory(fs, path, message); - - for (final key in fs.toMap().keys) { - if (key.startsWith(path) && key != path) { - throw FileSystemException( - message, - path, - OSError("Directory not empty", 66), - ); - } - } - - return dir; -} - -MemoryDirectoryImplementation assertParentDirectory( - MemoryFileSystem fs, String path, - [String message = ""]) { - final parent = fs.get(p.dirname(path)); - - if (parent == null) { - throw FileSystemException( - message, - path, - OSError("Not a directory", 20), - ); - } - - return parent; -} diff --git a/packages/edge_io/lib/src/memory_directory.dart b/packages/edge_io/lib/src/memory_directory.dart new file mode 100644 index 0000000..415ab0c --- /dev/null +++ b/packages/edge_io/lib/src/memory_directory.dart @@ -0,0 +1,85 @@ +import 'dart:io'; +import 'dart:math'; +import 'dart:typed_data'; + +import 'package:path/path.dart' as p; + +import 'package:edge_io/file_system_platform_interface.dart'; +import 'package:edge_io/src/memory_fse.dart'; + +final r = Random.secure(); +final chars = 'abcdefghijklmnopqrstuvwxyz0123456789'.split(''); + +String randomString(int length) { + final b = Uint8List(length); + + for (var i = 0; i < length; i++) { + b[i] = chars[r.nextInt(chars.length)].codeUnitAt(0); + } + + return String.fromCharCodes(b); +} + +class MemoryDirectory extends MemoryFSE implements Directory { + MemoryDirectory(FileSystemPlatform fs, String path) + : super(fs, path, FileSystemEntityType.directory); + + @override + int get size => 4; + + @override + Future create({bool recursive = false}) async { + return fs.create(path, this, recursive: recursive); + } + + @override + Directory ctor(String path) { + return MemoryDirectory(fs, path); + } + + @override + void createSync({bool recursive = false}) { + fs.create(path, this, recursive: recursive); + } + + @override + Future createTemp([String? prefix]) async { + return createTempSync(prefix); + } + + @override + Directory createTempSync([String? prefix]) { + final tmpPath = p.join(path, '${prefix ?? ''}${randomString(6)}'); + final tmpDir = MemoryDirectory(fs, path); + + return fs.create(tmpPath, tmpDir, recursive: true); + } + + @override + Stream list({ + bool recursive = false, + bool followLinks = true, + }) { + final iterable = fs.list( + path, + recursive: recursive, + followLinks: followLinks, + ); + + return Stream.fromIterable(iterable); + } + + @override + List listSync({ + bool recursive = false, + bool followLinks = true, + }) { + return fs + .list( + path, + recursive: recursive, + followLinks: followLinks, + ) + .toList(); + } +} diff --git a/packages/edge_io/lib/src/memory_fs.dart b/packages/edge_io/lib/src/memory_fs.dart new file mode 100644 index 0000000..681a6f6 --- /dev/null +++ b/packages/edge_io/lib/src/memory_fs.dart @@ -0,0 +1,148 @@ +import 'dart:io'; +import 'package:edge_io/src/memory_directory.dart'; +import 'package:edge_io/src/memory_fse.dart'; +import 'package:path/path.dart' as p; + +import 'package:edge_io/file_system_platform_interface.dart'; + +class _Entities { + final Map _pathsMap = {}; + + bool has(String path) { + return _pathsMap.containsKey(p.join(Directory.current.path, path)); + } + + MemoryFSE? operator [](String path) { + return _pathsMap[p.join(Directory.current.path, path)]; + } + + void operator []=(String path, MemoryFSE entity) { + final absolutePath = p.join(Directory.current.path, path); + _pathsMap[absolutePath] = entity; + } + + MemoryFSE? remove(String path) { + return _pathsMap.remove(p.join(Directory.current.path, path)); + } + + Iterable list( + String prefix, { + bool recursive = false, + bool followSymlinks = true, + }) sync* { + final absolutePrefix = p.join(Directory.current.path, prefix); + + for (final entry in _pathsMap.entries) { + if (entry.key == absolutePrefix) continue; + if (!entry.key.startsWith(absolutePrefix)) continue; + + switch (entry.value.type) { + case FileSystemEntityType.directory: + if (recursive) yield* (entry.value as MemoryDirectory).listSync(); + break; + case FileSystemEntityType.file: + yield entry.value; + break; + case FileSystemEntityType.link: + if (followSymlinks) { + yield* list(entry.value.path, recursive: recursive); + } + break; + default: + continue; + } + } + } +} + +class MemoryFS extends FileSystemPlatform { + @override + late Directory cwd; + + final _Entities _entities = _Entities(); + + MemoryFS({String cwd = '/'}) : cwd = Directory(p.absolute(cwd)); + + @override + bool exists(String path, FileSystemEntityType type) { + final entity = _entities[path]; + return entity?.type == type; + } + + @override + T rename(String path, String newPath) { + final entity = _entities.remove(path); + + try { + if (entity == null) { + throw FileSystemException('No such file or directory', path); + } + + final dstEntity = _entities[newPath]; + + if (dstEntity == null) { + _entities[newPath] = entity; + return entity as T; + } + + if (dstEntity.type != entity.type) { + throw FileSystemException('Incompatible file types', newPath); + } + + if (dstEntity.type == FileSystemEntityType.directory) { + if ((dstEntity as MemoryDirectory).listSync().isNotEmpty) { + throw FileSystemException('Directory not empty', newPath); + } + } + + _entities[newPath] = entity; + return entity as T; + } finally { + if (entity != null) { + _entities[path] = entity; + } + } + } + + @override + T create( + String path, + T entity, { + bool recursive = false, + }) { + final parent = p.dirname(path); + final parentExists = _entities.has(parent); + + if (!parentExists && !recursive) { + throw FileSystemException('No such file or directory', parent); + } + + if (_entities.has(path)) { + throw FileSystemException('File exists', path); + } else { + _entities[path] = entity; + return entity; + } + } + + @override + MemoryFSE? getEntity(String path) { + return _entities[path]; + } + + @override + FileStat stat(MemoryFSE entity) { + return entity.stats; + } + + @override + Iterable list( + String path, { + bool recursive = false, + bool followLinks = true, + }) { + return _entities + .list(path, recursive: recursive, followSymlinks: followLinks) + .cast(); + } +} diff --git a/packages/edge_io/lib/src/memory_fs_adapter.dart b/packages/edge_io/lib/src/memory_fs_adapter.dart new file mode 100644 index 0000000..b3f01f6 --- /dev/null +++ b/packages/edge_io/lib/src/memory_fs_adapter.dart @@ -0,0 +1,86 @@ +import 'dart:io'; + +import 'package:path/path.dart' as p; + +import 'package:edge_io/fs_adapter_platform_interface.dart'; + +import 'memory_directory.dart'; +import 'memory_fs.dart'; + +class MemoryFSAdapter implements PlatformFSAdapter { + @override + late final MemoryFS fs; + + MemoryFSAdapter({String cwd = '/'}) : fs = MemoryFS(cwd: cwd); + + @override + FileSystemEntity createEntity(String path, FileSystemEntityType type) { + switch (type) { + case FileSystemEntityType.directory: + return MemoryDirectory(fs, path); + default: + throw FileSystemException('Unsupported entity type $type', path); + } + } + + @override + Directory getCurrentDirectory() { + return fs.cwd; + } + + @override + Directory getSystemTempDirectory() { + return MemoryDirectory(fs, '/tmp'); + } + + @override + FileSystemEntityType getType(String path, bool followLinks) { + final entity = fs.getEntity(path); + + if (entity == null) { + return FileSystemEntityType.notFound; + } + + return entity.type; + } + + @override + bool identical(String path1, String path2) { + final e1 = fs.getEntity(path1); + final e2 = fs.getEntity(path2); + + if (e1 == null || e2 == null) { + return false; + } + + return e1 == e2; + } + + @override + void setCurrentDirectory(String path) { + fs.cwd = Directory(p.join(fs.cwd.path, path)); + } + + @override + FileStat stat(String path) { + final entity = fs.getEntity(path); + + if (entity == null) { + throw FileSystemException('No such file or directory', path); + } + + return fs.stat(entity); + } + + @override + Stream watch(String path, int events, bool recursive) { + // TODO: implement watch + throw UnimplementedError(); + } + + @override + bool watchIsSupported() { + // TODO: implement watchIsSupported + throw UnimplementedError(); + } +} diff --git a/packages/edge_io/lib/src/memory_fse.dart b/packages/edge_io/lib/src/memory_fse.dart new file mode 100644 index 0000000..c0af698 --- /dev/null +++ b/packages/edge_io/lib/src/memory_fse.dart @@ -0,0 +1,45 @@ +import 'dart:io'; +import 'package:edge_io/file_system_platform_interface.dart'; +import 'package:edge_io/src/memory_stat.dart'; +import 'package:path/path.dart' as p; + +abstract class MemoryFSE extends FileSystemEntity { + late final String _absolutePath; + + @override + final String path; + final FileSystemEntityType type; + final FileSystemPlatform fs; + late final MemoryStat stats = MemoryStat(this); + + MemoryFSE(this.fs, this.path, this.type) { + _absolutePath = p.join(Directory.current.path, path); + } + + T ctor(String path); + + @override + T get absolute => ctor(_absolutePath); + + @override + Future exists() async { + return fs.exists(_absolutePath, type); + } + + @override + bool existsSync() { + return fs.exists(_absolutePath, type); + } + + @override + Future rename(String newPath) async { + return fs.rename(_absolutePath, newPath); + } + + @override + T renameSync(String newPath) { + return fs.rename(_absolutePath, newPath); + } + + int get size; +} diff --git a/packages/edge_io/lib/src/memory_link.dart b/packages/edge_io/lib/src/memory_link.dart new file mode 100644 index 0000000..cef5a9c --- /dev/null +++ b/packages/edge_io/lib/src/memory_link.dart @@ -0,0 +1,51 @@ +import 'dart:io'; + +import 'memory_fse.dart'; + +class MemoryLink extends MemoryFSE implements Link { + MemoryLink(super.fs, super.path, super.type); + + @override + Future create(String target, {bool recursive = false}) { + // TODO: implement create + throw UnimplementedError(); + } + + @override + void createSync(String target, {bool recursive = false}) { + // TODO: implement createSync + } + + @override + Link ctor(String path) { + // TODO: implement ctor + throw UnimplementedError(); + } + + @override + // TODO: implement size + int get size => throw UnimplementedError(); + + @override + Future target() { + // TODO: implement target + throw UnimplementedError(); + } + + @override + String targetSync() { + // TODO: implement targetSync + throw UnimplementedError(); + } + + @override + Future update(String target) { + // TODO: implement update + throw UnimplementedError(); + } + + @override + void updateSync(String target) { + // TODO: implement updateSync + } +} diff --git a/packages/edge_io/lib/src/memory_stat.dart b/packages/edge_io/lib/src/memory_stat.dart new file mode 100644 index 0000000..98a120a --- /dev/null +++ b/packages/edge_io/lib/src/memory_stat.dart @@ -0,0 +1,50 @@ +import 'dart:io'; + +import 'package:edge_io/src/memory_fse.dart'; + +class MemoryStat implements FileStat { + final MemoryFSE entity; + + @override + late DateTime accessed; + @override + late DateTime changed; + @override + late DateTime modified; + + MemoryStat( + this.entity, { + DateTime? accessed, + DateTime? changed, + DateTime? modified, + }) { + final now = DateTime.now(); + accessed = now; + changed = now; + modified = now; + } + + @override + int get mode => throw UnimplementedError(); + + @override + String modeString() { + var permissions = mode & 0xFFF; + var codes = const ['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx']; + var result = []; + if ((permissions & 0x800) != 0) result.add("(suid) "); + if ((permissions & 0x400) != 0) result.add("(guid) "); + if ((permissions & 0x200) != 0) result.add("(sticky) "); + result + ..add(codes[(permissions >> 6) & 0x7]) + ..add(codes[(permissions >> 3) & 0x7]) + ..add(codes[permissions & 0x7]); + return result.join(); + } + + @override + int get size => entity.size; + + @override + FileSystemEntityType get type => entity.type; +} diff --git a/packages/edge_io/lib/src/streamed_io_sink.dart b/packages/edge_io/lib/src/streamed_io_sink.dart deleted file mode 100644 index df697bf..0000000 --- a/packages/edge_io/lib/src/streamed_io_sink.dart +++ /dev/null @@ -1,65 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; - -class StreamedIOSink implements IOSink { - final StreamController> _controller = StreamController(); - final File _file; - - @override - Encoding encoding; - - StreamedIOSink( - this._file, { - required this.encoding, - }); - - @override - void add(List data) { - _controller.add(data); - } - - @override - void addError(Object error, [StackTrace? stackTrace]) { - _controller.addError(error, stackTrace); - } - - @override - Future addStream(Stream> stream) { - return _controller.addStream(stream); - } - - @override - Future close() { - throw UnimplementedError('StreamedIOSink.close'); - } - - @override - Future get done => _controller.done; - - @override - Future flush() async { - final bytes = await _controller.stream.toList(); - await _file.writeAsBytes(bytes.expand((e) => e).toList()); - } - - @override - void write(Object? object) { - _controller.add(utf8.encode('$object')); - } - - @override - void writeAll(Iterable objects, [String separator = ""]) { - _controller.add(utf8.encode(objects.join(separator))); - } - - @override - void writeCharCode(int charCode) { - _controller.add(utf8.encode(String.fromCharCode(charCode))); - } - - @override - void writeln([Object? object = ""]) { - _controller.add(utf8.encode('$object')); - } -} diff --git a/packages/edge_io/lib/src/streamed_stdout.dart b/packages/edge_io/lib/src/streamed_stdout.dart deleted file mode 100644 index d2987b3..0000000 --- a/packages/edge_io/lib/src/streamed_stdout.dart +++ /dev/null @@ -1,77 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; - -class StreamedStdout implements Stdout { - StreamController>? _controllerInstance; - - StreamController> get _controller => - _controllerInstance ??= StreamController.broadcast(); - - @override - Encoding encoding = utf8; - - @override - void add(List data) { - _controller.add(data); - } - - @override - void addError(Object error, [StackTrace? stackTrace]) { - _controller.addError(error, stackTrace); - } - - @override - Future addStream(Stream> stream) { - return _controller.addStream(stream); - } - - @override - Future close() { - return _controller.close(); - } - - @override - Future get done => _controller.done; - - @override - Future flush() { - return Future.value(); - } - - @override - bool get hasTerminal => false; - - @override - IOSink get nonBlocking => - throw UnimplementedError('StreamedStdout.nonBlocking'); - - @override - bool get supportsAnsiEscapes => false; - - @override - int get terminalColumns => 60; - - @override - int get terminalLines => 20; - - @override - void write(Object? object) { - _controller.add(utf8.encode(object.toString())); - } - - @override - void writeAll(Iterable objects, [String sep = ""]) { - _controller.add(utf8.encode(objects.join(sep))); - } - - @override - void writeCharCode(int charCode) { - _controller.add(utf8.encode(String.fromCharCode(charCode))); - } - - @override - void writeln([Object? object = ""]) { - _controller.add(utf8.encode('$object\n')); - } -} diff --git a/packages/edge_io/pubspec.lock b/packages/edge_io/pubspec.lock index 381ccae..d81c95b 100644 --- a/packages/edge_io/pubspec.lock +++ b/packages/edge_io/pubspec.lock @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.14" + version: "0.12.15" meta: dependency: transitive description: @@ -301,26 +301,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "5301f54eb6fe945daa99bc8df6ece3f88b5ceaa6f996f250efdaaf63e22886be" + sha256: "3dac9aecf2c3991d09b9cdde4f98ded7b30804a88a0d7e4e7e1678e78d6b97f4" url: "https://pub.dev" source: hosted - version: "1.23.1" + version: "1.24.1" test_api: dependency: transitive description: name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.4.18" + version: "0.5.1" test_core: dependency: transitive description: name: test_core - sha256: d2e9240594b409565524802b84b7b39341da36dd6fd8e1660b53ad928ec3e9af + sha256: "5138dbffb77b2289ecb12b81c11ba46036590b72a64a7a90d6ffb880f1a29e93" url: "https://pub.dev" source: hosted - version: "0.4.24" + version: "0.5.1" typed_data: dependency: transitive description: diff --git a/packages/edge_io/pubspec.yaml b/packages/edge_io/pubspec.yaml index eb14ba3..9483611 100644 --- a/packages/edge_io/pubspec.yaml +++ b/packages/edge_io/pubspec.yaml @@ -12,4 +12,4 @@ dependencies: dev_dependencies: lints: ^2.0.0 - test: ^1.23.1 \ No newline at end of file + test: ^1.24.1 \ No newline at end of file diff --git a/packages/edge_io/test/_playground.dart b/packages/edge_io/test/_playground.dart deleted file mode 100644 index 54c6ef3..0000000 --- a/packages/edge_io/test/_playground.dart +++ /dev/null @@ -1,123 +0,0 @@ -import 'dart:io'; -import 'package:path/path.dart' as p; - -File tempFile(File file) { - final tmp = Directory.systemTemp.createTempSync(); - return File(p.join(tmp.path, file.path)); -} - -Directory tempDir(Directory directory) { - final tmp = Directory.systemTemp.createTempSync(); - return Directory(p.join(tmp.path, directory.path)); -} - -void main() async { - // await fileAbsolute(); - // await fileCopy(); - // await fileCreate(); - // await fileMetadata(); - // await fileRead(); - - await dirRename(); -} - -Future fileAbsolute() async { - final file1 = File('file1.txt'); - print(file1.absolute.path); -} - -Future rename() async { - final file1 = tempFile(File('file1.txt')); - await file1.create(); - final file2 = await file1.rename('newPath.txt'); - print(file1.path); - print(file2.path); -} - -Future fileCopy() async { - final file1 = tempFile(File('file1.txt')); - await file1.create(); - final file2 = await file1.copySync('newPath.txt'); - print(file1.path); - print(file2.path); -} - -Future fileCreate() async { - final file1 = tempFile(File('foo/file1.txt')); - await file1.create(recursive: true); - await file1.create(exclusive: true); - print(file1.path); -} - -Future fileMetadata() async { - final file1 = tempFile(File('file1.txt')); - // await file1.create(recursive: true); - // file1.setLastAccessedSync(DateTime.now()); - file1.setLastModifiedSync(DateTime.now()); - // print(file1.lastAccessedSync()); - print(file1.lastModifiedSync()); - await file1.setLastAccessed(DateTime.now()); - print(file1.path); -} - -Future fileRead() async { - final file1 = tempFile(File('foo/file1.txt')); - // await file1.create(recursive: true); - await file1.writeAsString('Hello World'); - print(await file1.readAsString()); -} - -Future dirRename() async { - final d1 = tempDir(Directory('foo')); - await d1.create(recursive: true); - - final f1 = File(p.join(d1.path, 'baz.txt')); - f1.writeAsString('foo'); - - await d1.rename('bar'); - print(f1.existsSync()); - - // await d1.create(recursive: true); - // await d1.create(recursive: true); - - // final dir1 = tempDir(Directory('foo')); - // await dir1.create(recursive: true); - // // await dir1.create(recursive: true); - // final f1 = File(p.join(dir1.path, 'baz')); - // f1.createSync(recursive: true); - // f1.renameSync(p.join(dir1.path, 'bar', 'baz')); - - // var f2 = File(p.join(dir1.path, 'bar.txt', 'baz.txt')); - // f1.renameSync(p.join(dir1.path, 'bar.txt', 'baz.txt')); - - // f1.writeAsStringSync('f1'); - // // f1.createSync(recursive: true); - - // var f2 = File(p.join(dir1.path, 'file2.txt')); - // f2.writeAsStringSync('fffff'); - - // // f1.openWrite(); - // f1.copySync(f2.path); - // print(f1.readAsStringSync()); - // print(f2.readAsStringSync()); - // f1.createSync(recursive: true); - // print(f1.path); - // f1 = f1.renameSync('bar/bax'); - // print(f1.path); - - // print(f1.readAsStringSync()); - - // // final dir2 = Directory(dir1.path + '/bar'); - // await dir1.create(recursive: true); - // await Future.delayed(Duration(seconds: 3)); - // // await dir2.create(recursive: true); - // print(await dir1.stat()); - - // final f1 = tempFile(File('file1.txt')); - // print(f1.parent); - // final sink = f1.openWrite(); - // // sink.addError(Exception('foo')); - // sink.add([1, 2, 3, 4, 5]); - // await sink.flush(); - // print(await f1.stat()); -} diff --git a/packages/edge_io/test/file_test.dart b/packages/edge_io/test/file_test.dart new file mode 100644 index 0000000..8501b9c --- /dev/null +++ b/packages/edge_io/test/file_test.dart @@ -0,0 +1,10 @@ +import 'dart:io'; + +import 'package:edge_io/edge_io.dart'; +import 'package:test/test.dart'; + +void main() { + setUpAll(() { + IOOverrides.global = EdgeIOOverrides(); + }); +} diff --git a/packages/edge_io/test/memory_test.dart b/packages/edge_io/test/memory_test.dart deleted file mode 100644 index 8bb1519..0000000 --- a/packages/edge_io/test/memory_test.dart +++ /dev/null @@ -1,179 +0,0 @@ -import 'dart:io'; - -import 'package:test/test.dart'; -import 'package:edge_io/memory.dart'; - -void main() { - // TODO swap out based on args? - final overrides = MemoryFsOverrides(); - IOOverrides.global = overrides; - - setUp(() { - overrides.clear(); - }); - - group('Overrides', () { - group('File', () { - group('rename', () { - test('it renames a file and removes the original', () { - final file1 = File('file1.txt'); - - file1.writeAsStringSync('foo'); - final renamed = file1.renameSync('file2.txt'); - - expect(renamed.path, 'file2.txt'); - expect(renamed.readAsStringSync(), 'foo'); - expect(file1.existsSync(), false); - }); - - test('it errors when renaming if the file does not exist', () { - final file1 = File('file1.txt'); - - expect( - () => file1.renameSync('foo.txt'), - throwsA(TypeMatcher()), - ); - }); - }); - - group('copy', () { - test('it copies a file to another location', () { - final file1 = File('file1.txt'); - - file1.writeAsStringSync('foo'); - final copy = file1.copySync('file2.txt'); - - expect(copy.path, 'file2.txt'); - expect(copy.readAsStringSync(), 'foo'); - expect(file1.existsSync(), true); - }); - - test('it errors when copying if the file does not exist', () { - final file1 = File('file1.txt'); - - expect( - () => file1.copySync('foo.txt'), - throwsA(TypeMatcher()), - ); - }); - }); - - group('lastAccessed', () { - test('it gets the last accessed time', () { - final file1 = File('file1.txt'); - file1.createSync(); - expect(file1.lastAccessedSync(), isA()); - }); - - test( - 'it should throw if last accessed time is called but no file exists', - () { - final file1 = File('file1.txt'); - - expect( - () => file1.lastAccessedSync(), - throwsA(TypeMatcher()), - ); - }); - - test('it should set last active time', () { - final file1 = File('file1.txt'); - file1.createSync(); - final time = DateTime.now().subtract(Duration(days: 1)); - file1.setLastAccessedSync(time); - expect(file1.lastAccessedSync(), time); - }); - - test( - 'it should throw if set last active time is set but no file exists', - () { - expect( - () => File('file1.txt').setLastAccessedSync(DateTime.now()), - throwsA(TypeMatcher()), - ); - }); - - test( - 'it should throw if last accessed time is called but no file exists', - () { - final file1 = File('file1.txt'); - - expect( - () => file1.lastAccessedSync(), - throwsA(TypeMatcher()), - ); - }); - }); - - group('lastModified', () { - test('it gets the last modified time', () { - final file1 = File('file1.txt'); - file1.createSync(); - expect(file1.lastModifiedSync(), isA()); - }); - - test( - 'it should throw if last modified time is called but no file exists', - () { - final file1 = File('file1.txt'); - - expect( - () => file1.lastModifiedSync(), - throwsA(TypeMatcher()), - ); - }); - - test('it should set last modified time', () { - final file1 = File('file1.txt'); - file1.createSync(); - final time = DateTime.now().subtract(Duration(days: 1)); - file1.setLastModifiedSync(time); - expect(file1.lastModifiedSync(), time); - }); - - test( - 'it should throw if set last modified time is set but no file exists', - () { - expect( - () => File('file1.txt').setLastModifiedSync(DateTime.now()), - throwsA(TypeMatcher()), - ); - }); - - test( - 'it should throw if last modified time is called but no file exists', - () { - final file1 = File('file1.txt'); - - expect( - () => file1.lastModifiedSync(), - throwsA(TypeMatcher()), - ); - }); - }); - }); - - group('Directory', () { - group('rename', () { - test('it renames a directory and removes the original', () { - final dir1 = Directory('dir1'); - - dir1.createSync(); - final renamed = dir1.renameSync('dir2'); - - expect(renamed.path, 'dir2'); - expect(dir1.existsSync(), false); - }); - - test('it errors when renaming if the directory does not exist', () { - final dir1 = Directory('foo'); - - expect( - () => dir1.renameSync('bar'), - throwsA(TypeMatcher()), - ); - }); - }); - }); - }); -} From 6aa1d5543fac0e3fe1ae949dbafe62ca2bcef9c0 Mon Sep 17 00:00:00 2001 From: Andrei Lesnitsky Date: Wed, 12 Apr 2023 20:05:02 +0200 Subject: [PATCH 11/19] wip --- packages/edge_io/lib/edge_io.dart | 6 ++---- .../lib/file_system_platform_interface.dart | 4 ++-- packages/edge_io/lib/src/memory_fs.dart | 14 +++++++------- packages/edge_io/lib/src/memory_fs_adapter.dart | 5 +++-- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/edge_io/lib/edge_io.dart b/packages/edge_io/lib/edge_io.dart index 1deafa9..e1a3124 100644 --- a/packages/edge_io/lib/edge_io.dart +++ b/packages/edge_io/lib/edge_io.dart @@ -8,10 +8,8 @@ class EdgeIOOverrides implements IOOverrides { final PlatformFSAdapter fsAdapter; EdgeIOOverrides({ - this.fsAdapter = const MemoryFSAdapter(), - }) { - fsAdapter.mount(); - } + PlatformFSAdapter? fsAdapter, + }) : fsAdapter = fsAdapter ?? MemoryFSAdapter(); @override Directory createDirectory(String path) { diff --git a/packages/edge_io/lib/file_system_platform_interface.dart b/packages/edge_io/lib/file_system_platform_interface.dart index c3efb22..0390dc4 100644 --- a/packages/edge_io/lib/file_system_platform_interface.dart +++ b/packages/edge_io/lib/file_system_platform_interface.dart @@ -12,8 +12,8 @@ abstract class FileSystemPlatform { bool recursive = false, }); - T getEntity(String path); - FileStat stat(T entity); + T? getEntity(String path); + FileStat stat(covariant FileSystemEntity entity); Iterable list( String path, { diff --git a/packages/edge_io/lib/src/memory_fs.dart b/packages/edge_io/lib/src/memory_fs.dart index 681a6f6..14e2e4b 100644 --- a/packages/edge_io/lib/src/memory_fs.dart +++ b/packages/edge_io/lib/src/memory_fs.dart @@ -55,7 +55,7 @@ class _Entities { } } -class MemoryFS extends FileSystemPlatform { +class MemoryFS extends FileSystemPlatform { @override late Directory cwd; @@ -70,7 +70,7 @@ class MemoryFS extends FileSystemPlatform { } @override - T rename(String path, String newPath) { + T rename(String path, String newPath) { final entity = _entities.remove(path); try { @@ -105,7 +105,7 @@ class MemoryFS extends FileSystemPlatform { } @override - T create( + T create( String path, T entity, { bool recursive = false, @@ -120,14 +120,14 @@ class MemoryFS extends FileSystemPlatform { if (_entities.has(path)) { throw FileSystemException('File exists', path); } else { - _entities[path] = entity; + _entities[path] = entity as MemoryFSE; return entity; } } @override - MemoryFSE? getEntity(String path) { - return _entities[path]; + T? getEntity(String path) { + return _entities[path] as T; } @override @@ -136,7 +136,7 @@ class MemoryFS extends FileSystemPlatform { } @override - Iterable list( + Iterable list( String path, { bool recursive = false, bool followLinks = true, diff --git a/packages/edge_io/lib/src/memory_fs_adapter.dart b/packages/edge_io/lib/src/memory_fs_adapter.dart index b3f01f6..2dd2cf4 100644 --- a/packages/edge_io/lib/src/memory_fs_adapter.dart +++ b/packages/edge_io/lib/src/memory_fs_adapter.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:edge_io/src/memory_fse.dart'; import 'package:path/path.dart' as p; import 'package:edge_io/fs_adapter_platform_interface.dart'; @@ -35,7 +36,7 @@ class MemoryFSAdapter implements PlatformFSAdapter { @override FileSystemEntityType getType(String path, bool followLinks) { - final entity = fs.getEntity(path); + final entity = fs.getEntity(path); if (entity == null) { return FileSystemEntityType.notFound; @@ -63,7 +64,7 @@ class MemoryFSAdapter implements PlatformFSAdapter { @override FileStat stat(String path) { - final entity = fs.getEntity(path); + final entity = fs.getEntity(path); if (entity == null) { throw FileSystemException('No such file or directory', path); From 42df1f2de8d9f81c8a13a70bb6c43da0a48ec91e Mon Sep 17 00:00:00 2001 From: Andrei Lesnitsky Date: Wed, 12 Apr 2023 20:07:39 +0200 Subject: [PATCH 12/19] update imports --- packages/edge_io/lib/src/memory_directory.dart | 2 +- packages/edge_io/lib/src/memory_fs.dart | 6 +++--- packages/edge_io/lib/src/memory_fs_adapter.dart | 2 +- packages/edge_io/lib/src/memory_fse.dart | 3 ++- packages/edge_io/lib/src/memory_stat.dart | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/edge_io/lib/src/memory_directory.dart b/packages/edge_io/lib/src/memory_directory.dart index 415ab0c..4f3b170 100644 --- a/packages/edge_io/lib/src/memory_directory.dart +++ b/packages/edge_io/lib/src/memory_directory.dart @@ -5,7 +5,7 @@ import 'dart:typed_data'; import 'package:path/path.dart' as p; import 'package:edge_io/file_system_platform_interface.dart'; -import 'package:edge_io/src/memory_fse.dart'; +import 'memory_fse.dart'; final r = Random.secure(); final chars = 'abcdefghijklmnopqrstuvwxyz0123456789'.split(''); diff --git a/packages/edge_io/lib/src/memory_fs.dart b/packages/edge_io/lib/src/memory_fs.dart index 14e2e4b..5416993 100644 --- a/packages/edge_io/lib/src/memory_fs.dart +++ b/packages/edge_io/lib/src/memory_fs.dart @@ -1,10 +1,10 @@ import 'dart:io'; -import 'package:edge_io/src/memory_directory.dart'; -import 'package:edge_io/src/memory_fse.dart'; import 'package:path/path.dart' as p; - import 'package:edge_io/file_system_platform_interface.dart'; +import 'memory_directory.dart'; +import 'memory_fse.dart'; + class _Entities { final Map _pathsMap = {}; diff --git a/packages/edge_io/lib/src/memory_fs_adapter.dart b/packages/edge_io/lib/src/memory_fs_adapter.dart index 2dd2cf4..8dbb488 100644 --- a/packages/edge_io/lib/src/memory_fs_adapter.dart +++ b/packages/edge_io/lib/src/memory_fs_adapter.dart @@ -1,12 +1,12 @@ import 'dart:io'; -import 'package:edge_io/src/memory_fse.dart'; import 'package:path/path.dart' as p; import 'package:edge_io/fs_adapter_platform_interface.dart'; import 'memory_directory.dart'; import 'memory_fs.dart'; +import 'memory_fse.dart'; class MemoryFSAdapter implements PlatformFSAdapter { @override diff --git a/packages/edge_io/lib/src/memory_fse.dart b/packages/edge_io/lib/src/memory_fse.dart index c0af698..8cfc10d 100644 --- a/packages/edge_io/lib/src/memory_fse.dart +++ b/packages/edge_io/lib/src/memory_fse.dart @@ -1,8 +1,9 @@ import 'dart:io'; import 'package:edge_io/file_system_platform_interface.dart'; -import 'package:edge_io/src/memory_stat.dart'; import 'package:path/path.dart' as p; +import 'memory_stat.dart'; + abstract class MemoryFSE extends FileSystemEntity { late final String _absolutePath; diff --git a/packages/edge_io/lib/src/memory_stat.dart b/packages/edge_io/lib/src/memory_stat.dart index 98a120a..7113f0c 100644 --- a/packages/edge_io/lib/src/memory_stat.dart +++ b/packages/edge_io/lib/src/memory_stat.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:edge_io/src/memory_fse.dart'; +import 'memory_fse.dart'; class MemoryStat implements FileStat { final MemoryFSE entity; From c5c2c7fa5c71c8670919dc1012eec06888e4299a Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Wed, 26 Apr 2023 11:48:20 +0200 Subject: [PATCH 13/19] Locks --- examples/cloudflare-durable-objects/pubspec.lock | 2 +- examples/vercel-edge-shelf/pubspec.lock | 2 +- packages/cloudflare_workers/example/pubspec.lock | 2 +- packages/cloudflare_workers/pubspec.lock | 2 +- packages/deno_deploy/pubspec.lock | 2 +- packages/edge/pubspec.lock | 2 +- packages/edge_io/pubspec.lock | 2 +- packages/edge_runtime/example/pubspec.lock | 2 +- packages/edge_runtime/pubspec.lock | 2 +- packages/netlify_edge/example/pubspec.lock | 2 +- packages/netlify_edge/pubspec.lock | 2 +- packages/supabase_functions/example/pubspec.lock | 2 +- packages/supabase_functions/pubspec.lock | 2 +- packages/vercel_edge/example/pubspec.lock | 2 +- packages/vercel_edge/pubspec.lock | 2 +- pubspec.lock | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/cloudflare-durable-objects/pubspec.lock b/examples/cloudflare-durable-objects/pubspec.lock index c18a11f..54501f0 100644 --- a/examples/cloudflare-durable-objects/pubspec.lock +++ b/examples/cloudflare-durable-objects/pubspec.lock @@ -351,4 +351,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/examples/vercel-edge-shelf/pubspec.lock b/examples/vercel-edge-shelf/pubspec.lock index f9f8bc1..159f34f 100644 --- a/examples/vercel-edge-shelf/pubspec.lock +++ b/examples/vercel-edge-shelf/pubspec.lock @@ -383,4 +383,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/cloudflare_workers/example/pubspec.lock b/packages/cloudflare_workers/example/pubspec.lock index 7a3cedc..1ed568e 100644 --- a/packages/cloudflare_workers/example/pubspec.lock +++ b/packages/cloudflare_workers/example/pubspec.lock @@ -351,4 +351,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/cloudflare_workers/pubspec.lock b/packages/cloudflare_workers/pubspec.lock index 1b48982..5ad3fb1 100644 --- a/packages/cloudflare_workers/pubspec.lock +++ b/packages/cloudflare_workers/pubspec.lock @@ -536,4 +536,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/deno_deploy/pubspec.lock b/packages/deno_deploy/pubspec.lock index 84010e3..7da3c49 100644 --- a/packages/deno_deploy/pubspec.lock +++ b/packages/deno_deploy/pubspec.lock @@ -57,4 +57,4 @@ packages: source: hosted version: "1.9.0" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/edge/pubspec.lock b/packages/edge/pubspec.lock index 75e67be..37baa94 100644 --- a/packages/edge/pubspec.lock +++ b/packages/edge/pubspec.lock @@ -314,4 +314,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/edge_io/pubspec.lock b/packages/edge_io/pubspec.lock index d81c95b..5bbcb65 100644 --- a/packages/edge_io/pubspec.lock +++ b/packages/edge_io/pubspec.lock @@ -370,4 +370,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/edge_runtime/example/pubspec.lock b/packages/edge_runtime/example/pubspec.lock index bf8d255..21ae428 100644 --- a/packages/edge_runtime/example/pubspec.lock +++ b/packages/edge_runtime/example/pubspec.lock @@ -344,4 +344,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/edge_runtime/pubspec.lock b/packages/edge_runtime/pubspec.lock index ff28c9b..c350b81 100644 --- a/packages/edge_runtime/pubspec.lock +++ b/packages/edge_runtime/pubspec.lock @@ -554,4 +554,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/netlify_edge/example/pubspec.lock b/packages/netlify_edge/example/pubspec.lock index 8009715..36f1051 100644 --- a/packages/netlify_edge/example/pubspec.lock +++ b/packages/netlify_edge/example/pubspec.lock @@ -351,4 +351,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/netlify_edge/pubspec.lock b/packages/netlify_edge/pubspec.lock index 38b7c3e..8cd52e4 100644 --- a/packages/netlify_edge/pubspec.lock +++ b/packages/netlify_edge/pubspec.lock @@ -528,4 +528,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/supabase_functions/example/pubspec.lock b/packages/supabase_functions/example/pubspec.lock index d79398a..16bbf3c 100644 --- a/packages/supabase_functions/example/pubspec.lock +++ b/packages/supabase_functions/example/pubspec.lock @@ -358,4 +358,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/supabase_functions/pubspec.lock b/packages/supabase_functions/pubspec.lock index ae22f0e..cea1e9f 100644 --- a/packages/supabase_functions/pubspec.lock +++ b/packages/supabase_functions/pubspec.lock @@ -535,4 +535,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/vercel_edge/example/pubspec.lock b/packages/vercel_edge/example/pubspec.lock index b1f2298..eda8e46 100644 --- a/packages/vercel_edge/example/pubspec.lock +++ b/packages/vercel_edge/example/pubspec.lock @@ -383,4 +383,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/packages/vercel_edge/pubspec.lock b/packages/vercel_edge/pubspec.lock index a9649f2..e8b0024 100644 --- a/packages/vercel_edge/pubspec.lock +++ b/packages/vercel_edge/pubspec.lock @@ -528,4 +528,4 @@ packages: source: hosted version: "3.1.1" sdks: - dart: ">=2.19.0 <3.0.0" + dart: ">=2.19.0 <4.0.0" diff --git a/pubspec.lock b/pubspec.lock index 5aeee97..b2dd198 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -290,4 +290,4 @@ packages: source: hosted version: "2.1.0" sdks: - dart: ">=2.18.0 <3.0.0" + dart: ">=2.18.0 <4.0.0" From c763f5ae8072193b3611c0855058f6965c589f14 Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Thu, 27 Apr 2023 10:55:16 +0200 Subject: [PATCH 14/19] Add IO overrides through pkg:file --- packages/edge_io/all_lint_rules.yaml | 218 +++++++++++ packages/edge_io/analysis_options.yaml | 81 +++-- .../lib/src/file_to_io_override_adapter.dart | 340 ++++++++++++++++++ packages/edge_io/pubspec.lock | 10 +- packages/edge_io/pubspec.yaml | 2 +- 5 files changed, 617 insertions(+), 34 deletions(-) create mode 100644 packages/edge_io/all_lint_rules.yaml create mode 100644 packages/edge_io/lib/src/file_to_io_override_adapter.dart diff --git a/packages/edge_io/all_lint_rules.yaml b/packages/edge_io/all_lint_rules.yaml new file mode 100644 index 0000000..c2f0d7a --- /dev/null +++ b/packages/edge_io/all_lint_rules.yaml @@ -0,0 +1,218 @@ +linter: + rules: + - always_declare_return_types + - always_put_control_body_on_new_line + - always_put_required_named_parameters_first + - always_specify_types + - always_use_package_imports + - annotate_overrides + - avoid_annotating_with_dynamic + - avoid_bool_literals_in_conditional_expressions + - avoid_catches_without_on_clauses + - avoid_catching_errors + - avoid_classes_with_only_static_members + - avoid_double_and_int_checks + - avoid_dynamic_calls + - avoid_empty_else + - avoid_equals_and_hash_code_on_mutable_classes + - avoid_escaping_inner_quotes + - avoid_field_initializers_in_const_classes + - avoid_final_parameters + - avoid_function_literals_in_foreach_calls + - avoid_implementing_value_types + - avoid_init_to_null + - avoid_js_rounded_ints + - avoid_multiple_declarations_per_line + - avoid_null_checks_in_equality_operators + - avoid_positional_boolean_parameters + - avoid_print + - avoid_private_typedef_functions + - avoid_redundant_argument_values + - avoid_relative_lib_imports + - avoid_renaming_method_parameters + - avoid_return_types_on_setters + - avoid_returning_null_for_void + - avoid_returning_this + - avoid_setters_without_getters + - avoid_shadowing_type_parameters + - avoid_single_cascade_in_expression_statements + - avoid_slow_async_io + - avoid_type_to_string + - avoid_types_as_parameter_names + - avoid_types_on_closure_parameters + - avoid_unnecessary_containers + - avoid_unused_constructor_parameters + - avoid_void_async + - avoid_web_libraries_in_flutter + - await_only_futures + - camel_case_extensions + - camel_case_types + - cancel_subscriptions + - cascade_invocations + - cast_nullable_to_non_nullable + - close_sinks + - collection_methods_unrelated_type + - combinators_ordering + - comment_references + - conditional_uri_does_not_exist + - constant_identifier_names + - control_flow_in_finally + - curly_braces_in_flow_control_structures + - dangling_library_doc_comments + - depend_on_referenced_packages + - deprecated_consistency + - deprecated_member_use_from_same_package + - diagnostic_describe_all_properties + - directives_ordering + - discarded_futures + - do_not_use_environment + - empty_catches + - empty_constructor_bodies + - empty_statements + - eol_at_end_of_file + - exhaustive_cases + - file_names + - flutter_style_todos + - hash_and_equals + - implementation_imports + - implicit_call_tearoffs + - implicit_reopen + - invalid_case_patterns + - iterable_contains_unrelated_type + - join_return_with_assignment + - leading_newlines_in_multiline_strings + - library_annotations + - library_names + - library_prefixes + - library_private_types_in_public_api + - lines_longer_than_80_chars + - list_remove_unrelated_type + - literal_only_boolean_expressions + - matching_super_parameters + - missing_whitespace_between_adjacent_strings + - no_adjacent_strings_in_list + - no_default_cases + - no_duplicate_case_values + - no_leading_underscores_for_library_prefixes + - no_leading_underscores_for_local_identifiers + - no_literal_bool_comparisons + - no_logic_in_create_state + - no_runtimeType_toString + - non_constant_identifier_names + - noop_primitive_operations + - null_check_on_nullable_type_parameter + - null_closures + - omit_local_variable_types + - one_member_abstracts + - only_throw_errors + - overridden_fields + - package_api_docs + - package_names + - package_prefixed_library_names + - parameter_assignments + - prefer_adjacent_string_concatenation + - prefer_asserts_in_initializer_lists + - prefer_asserts_with_message + - prefer_collection_literals + - prefer_conditional_assignment + - prefer_const_constructors + - prefer_const_constructors_in_immutables + - prefer_const_declarations + - prefer_const_literals_to_create_immutables + - prefer_constructors_over_static_methods + - prefer_contains + - prefer_double_quotes + - prefer_expression_function_bodies + - prefer_final_fields + - prefer_final_in_for_each + - prefer_final_locals + - prefer_final_parameters + - prefer_for_elements_to_map_fromIterable + - prefer_foreach + - prefer_function_declarations_over_variables + - prefer_generic_function_type_aliases + - prefer_if_elements_to_conditional_expressions + - prefer_if_null_operators + - prefer_initializing_formals + - prefer_inlined_adds + - prefer_int_literals + - prefer_interpolation_to_compose_strings + - prefer_is_empty + - prefer_is_not_empty + - prefer_is_not_operator + - prefer_iterable_whereType + - prefer_mixin + - prefer_null_aware_method_calls + - prefer_null_aware_operators + - prefer_relative_imports + - prefer_single_quotes + - prefer_spread_collections + - prefer_typing_uninitialized_variables + - prefer_void_to_null + - provide_deprecation_message + - public_member_api_docs + - recursive_getters + - require_trailing_commas + - secure_pubspec_urls + - sized_box_for_whitespace + - sized_box_shrink_expand + - slash_for_doc_comments + - sort_child_properties_last + - sort_constructors_first + - sort_pub_dependencies + - sort_unnamed_constructors_first + - test_types_in_equals + - throw_in_finally + - tighten_type_of_initializing_formals + - type_annotate_public_apis + - type_init_formals + - type_literal_in_constant_pattern + - unawaited_futures + - unnecessary_await_in_return + - unnecessary_brace_in_string_interps + - unnecessary_breaks + - unnecessary_const + - unnecessary_constructor_name + - unnecessary_final + - unnecessary_getters_setters + - unnecessary_lambdas + - unnecessary_late + - unnecessary_library_directive + - unnecessary_new + - unnecessary_null_aware_assignments + - unnecessary_null_aware_operator_on_extension_on_nullable + - unnecessary_null_checks + - unnecessary_null_in_if_null_operators + - unnecessary_nullable_for_final_variable_declarations + - unnecessary_overrides + - unnecessary_parenthesis + - unnecessary_raw_strings + - unnecessary_statements + - unnecessary_string_escapes + - unnecessary_string_interpolations + - unnecessary_this + - unnecessary_to_list_in_spreads + - unreachable_from_main + - unrelated_type_equality_checks + - unsafe_html + - use_build_context_synchronously + - use_colored_box + - use_decorated_box + - use_enums + - use_full_hex_values_for_flutter_colors + - use_function_type_syntax_for_parameters + - use_if_null_to_convert_nulls_to_bools + - use_is_even_rather_than_modulo + - use_key_in_widget_constructors + - use_late_for_private_fields_and_variables + - use_named_constants + - use_raw_strings + - use_rethrow_when_possible + - use_setters_to_change_properties + - use_string_buffers + - use_string_in_part_of_directives + - use_super_parameters + - use_test_throws_matchers + - use_to_and_as_if_applicable + - valid_regexps + - void_checks \ No newline at end of file diff --git a/packages/edge_io/analysis_options.yaml b/packages/edge_io/analysis_options.yaml index 2d437f6..c30a0a7 100644 --- a/packages/edge_io/analysis_options.yaml +++ b/packages/edge_io/analysis_options.yaml @@ -1,24 +1,57 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options +include: all_lint_rules.yaml +analyzer: + language: + strict-casts: true + strict-inference: true + strict-raw-types: true + errors: + # Otherwise cause the import of all_lint_rules to warn because of some rules conflicts. + # We explicitly enabled even conflicting rules and are fixing the conflict + # in this file + included_file_warning: ignore + +linter: + rules: + # too verbose + prefer_final_parameters: false + + # Personal preference. I prefer "if (bool) return;" over having it in multiple lines + always_put_control_body_on_new_line: false + + # Conflicts with `prefer_single_quotes` + # Single quotes are easier to type and don't compromise on readability. + prefer_double_quotes: false + + # Conflicts with `omit_local_variable_types` and other rules. + # As per Dart guidelines, we want to avoid unnecessary types to make the code + # more readable. + # See https://dart.dev/guides/language/effective-dart/design#avoid-type-annotating-initialized-local-variables + always_specify_types: false + + # Incompatible with `prefer_final_locals` + # Having immutable local variables makes larger functions more predictable + # so we will use `prefer_final_locals` instead. + unnecessary_final: false + + # Not quite suitable for Flutter, which may have a `build` method with a single + # return, but that return is still complex enough that a "body" is worth it. + prefer_expression_function_bodies: false + + # Conflicts with the convention used by flutter, which puts `Key key` + # and `@required Widget child` last. + always_put_required_named_parameters_first: false + + # There are situations where we voluntarily want to catch everything, + # especially as a library. + avoid_catches_without_on_clauses: false + + # Boring as it sometimes force a line of 81 characters to be split in two. + # As long as we try to respect that 80 characters limit, going slightly + # above is fine. + lines_longer_than_80_chars: false + + # Conflicts with disabling `implicit-dynamic` + avoid_annotating_with_dynamic: false + + # conflicts with `prefer_relative_imports` + always_use_package_imports: false diff --git a/packages/edge_io/lib/src/file_to_io_override_adapter.dart b/packages/edge_io/lib/src/file_to_io_override_adapter.dart new file mode 100644 index 0000000..e8d3606 --- /dev/null +++ b/packages/edge_io/lib/src/file_to_io_override_adapter.dart @@ -0,0 +1,340 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; + +import 'package:file/file.dart' as f; + +/// The prototype of [IOOverrides.socketStartConnect] +typedef SocketStartConnect = Future> Function( + Object? host, + int port, { + Object? sourceAddress, + int sourcePort, +}); + +/// The prototype of [IOOverrides.socketConnect] +typedef SocketConnect = Future Function( + Object? host, + int port, { + Object? sourceAddress, + int sourcePort, + Duration? timeout, +}); + +/// The prototype of [IOOverrides.serverSocketBind] +typedef ServerSocketBind = Future Function( + Object? address, + int port, { + int backlog, + bool v6Only, + bool shared, +}); + +/// An [IOOverrides] that delegates IO operations to a [f.FileSystem]. +class FileSystemToIoOverrideAdapter extends IOOverrides { + /// An [IOOverrides] that delegates IO operations to a [f.FileSystem]. + FileSystemToIoOverrideAdapter({ + this.fs, + SocketStartConnect? socketStartConnect, + ServerSocketBind? serverSocketBind, + SocketConnect? socketConnect, + Stdout? stdout, + Stdout? stderr, + }) : _socketStartConnect = socketStartConnect, + _socketConnect = socketConnect, + _stderr = stderr, + _stdout = stdout, + _serverSocketBind = serverSocketBind; + + // TODO how to mock stdin? + + @override + Stdout get stderr => _stderr ?? super.stderr; + + @override + Stdout get stdout => _stdout ?? super.stdout; + + /// The file system to delegate IO operations to. + final f.FileSystem? fs; + + final Stdout? _stdout; + final Stdout? _stderr; + final SocketStartConnect? _socketStartConnect; + final SocketConnect? _socketConnect; + final ServerSocketBind? _serverSocketBind; + + @override + Directory createDirectory(String path) { + return fs?.directory(path) ?? super.createDirectory(path); + } + + @override + File createFile(String path) { + return fs?.file(path) ?? super.createFile(path); + } + + @override + Link createLink(String path) { + return fs?.link(path) ?? super.createLink(path); + } + + @override + Stream fsWatch( + String path, + int events, + bool recursive, + ) async* { + final fs = this.fs; + if (fs == null) { + yield* super.fsWatch(path, events, recursive); + return; + } + + final type = await fs.type(path); + + f.FileSystemEntity entity; + switch (type) { + case f.FileSystemEntityType.directory: + entity = fs.directory(path); + break; + case f.FileSystemEntityType.file: + entity = fs.file(path); + break; + case f.FileSystemEntityType.link: + entity = fs.link(path); + break; + // ignore: no_default_cases, new lints for when patterns land? + default: + throw ArgumentError.value( + path, + 'path', + 'point to an entity of type $type, but expected a directory/file/link.', + ); + } + + yield* entity.watch( + events: events, + recursive: recursive, + ); + } + + @override + bool fsWatchIsSupported() => + fs?.isWatchSupported ?? super.fsWatchIsSupported(); + + @override + Future fseGetType(String path, bool followLinks) async { + return fs?.type(path, followLinks: followLinks) ?? + super.fseGetType(path, followLinks); + } + + @override + FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { + return fs?.typeSync(path, followLinks: followLinks) ?? + super.fseGetTypeSync(path, followLinks); + } + + @override + Future fseIdentical(String path1, String path2) { + return fs?.identical(path1, path2) ?? super.fseIdentical(path1, path2); + } + + @override + bool fseIdenticalSync(String path1, String path2) { + return fs?.identicalSync(path1, path2) ?? + super.fseIdenticalSync(path1, path2); + } + + @override + Directory getCurrentDirectory() { + return fs?.currentDirectory ?? super.getCurrentDirectory(); + } + + @override + void setCurrentDirectory(String path) { + if (fs == null) { + super.setCurrentDirectory(path); + return; + } + + fs!.currentDirectory = path; + } + + @override + Directory getSystemTempDirectory() { + return fs?.systemTempDirectory ?? super.getSystemTempDirectory(); + } + + @override + Future stat(String path) => fs?.stat(path) ?? super.stat(path); + + @override + FileStat statSync(String path) => fs?.statSync(path) ?? super.statSync(path); + + @override + Future> socketStartConnect( + Object? host, + int port, { + Object? sourceAddress, + int sourcePort = 0, + }) { + final socketStartConnect = _socketStartConnect; + if (socketStartConnect != null) { + return socketStartConnect( + host, + port, + sourceAddress: sourceAddress, + sourcePort: sourcePort, + ); + } + + return super.socketStartConnect( + host, + port, + sourceAddress: sourceAddress, + sourcePort: sourcePort, + ); + } + + @override + Future serverSocketBind( + Object? address, + int port, { + int backlog = 0, + bool v6Only = false, + bool shared = false, + }) { + final serverSocketBind = _serverSocketBind; + if (serverSocketBind != null) { + return serverSocketBind( + address, + port, + backlog: backlog, + v6Only: v6Only, + shared: shared, + ); + } + + return super.serverSocketBind( + address, + port, + backlog: backlog, + v6Only: v6Only, + shared: shared, + ); + } + + @override + Future socketConnect( + Object? host, + int port, { + Object? sourceAddress, + int sourcePort = 0, + Duration? timeout, + }) { + final socketConnect = _socketConnect; + if (socketConnect != null) { + return socketConnect( + host, + port, + sourceAddress: sourceAddress, + sourcePort: sourcePort, + timeout: timeout, + ); + } + + return super.socketConnect( + host, + port, + sourceAddress: sourceAddress, + sourcePort: sourcePort, + timeout: timeout, + ); + } +} + +/// A custom implementation of [Stdout], which can be sent to [IOOverrides]. +class CustomStdout implements Stdout { + /// A custom implementation of [Stdout], which can be sent to [IOOverrides]. + CustomStdout({ + this.encoding = systemEncoding, + this.hasTerminal = true, + this.supportsAnsiEscapes = true, + this.terminalColumns = 80, + this.terminalLines = 24, + }); + + final _controller = StreamController>(); + + /// The output stream, post encoding. + Stream> get stream => _controller.stream; + + @override + Future get done => _controller.done; + + @override + IOSink get nonBlocking => this; + + @override + bool hasTerminal; + + @override + bool supportsAnsiEscapes; + + @override + int terminalColumns; + + @override + int terminalLines; + + @override + Encoding encoding; + + @override + void add(List data) => _controller.add(data); + + @override + void addError(Object error, [StackTrace? stackTrace]) { + _controller.addError(error, stackTrace); + } + + @override + Future addStream(Stream> stream) { + return _controller.addStream(stream); + } + + @override + Future flush() { + // TODO is there anything to do here? + return Future.value(); + } + + @override + void write(Object? object) { + add(encoding.encode(object.toString())); + } + + @override + void writeAll( + Iterable objects, [ + String sep = '', + ]) { + write(objects.join(sep)); + } + + @override + void writeCharCode(int charCode) { + write(String.fromCharCode(charCode)); + } + + @override + void writeln([Object? object = '']) { + write(object); + write('\n'); + } + + @override + Future close() { + return _controller.close(); + } +} diff --git a/packages/edge_io/pubspec.lock b/packages/edge_io/pubspec.lock index 5bbcb65..0956b98 100644 --- a/packages/edge_io/pubspec.lock +++ b/packages/edge_io/pubspec.lock @@ -74,7 +74,7 @@ packages: source: hosted version: "3.0.2" file: - dependency: transitive + dependency: "direct main" description: name: file sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" @@ -129,14 +129,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" logging: dependency: transitive description: diff --git a/packages/edge_io/pubspec.yaml b/packages/edge_io/pubspec.yaml index 9483611..6a6a7ab 100644 --- a/packages/edge_io/pubspec.yaml +++ b/packages/edge_io/pubspec.yaml @@ -8,8 +8,8 @@ environment: sdk: ">=2.18.5 <3.0.0" dependencies: + file: ^6.1.4 path: ^1.8.3 dev_dependencies: - lints: ^2.0.0 test: ^1.24.1 \ No newline at end of file From d1bcb92b269438f6b233397c0f450d798c0a629d Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Thu, 27 Apr 2023 10:56:26 +0200 Subject: [PATCH 15/19] Delete manual IO override implementation and export file IO override impl --- packages/edge_io/lib/edge_io.dart | 132 +--------------- .../lib/file_system_platform_interface.dart | 23 --- .../lib/fs_adapter_platform_interface.dart | 45 ------ .../edge_io/lib/src/memory_directory.dart | 85 ---------- packages/edge_io/lib/src/memory_fs.dart | 148 ------------------ .../edge_io/lib/src/memory_fs_adapter.dart | 87 ---------- packages/edge_io/lib/src/memory_fse.dart | 46 ------ packages/edge_io/lib/src/memory_link.dart | 51 ------ packages/edge_io/lib/src/memory_stat.dart | 50 ------ packages/edge_io/test/file_test.dart | 10 -- 10 files changed, 1 insertion(+), 676 deletions(-) delete mode 100644 packages/edge_io/lib/file_system_platform_interface.dart delete mode 100644 packages/edge_io/lib/fs_adapter_platform_interface.dart delete mode 100644 packages/edge_io/lib/src/memory_directory.dart delete mode 100644 packages/edge_io/lib/src/memory_fs.dart delete mode 100644 packages/edge_io/lib/src/memory_fs_adapter.dart delete mode 100644 packages/edge_io/lib/src/memory_fse.dart delete mode 100644 packages/edge_io/lib/src/memory_link.dart delete mode 100644 packages/edge_io/lib/src/memory_stat.dart delete mode 100644 packages/edge_io/test/file_test.dart diff --git a/packages/edge_io/lib/edge_io.dart b/packages/edge_io/lib/edge_io.dart index e1a3124..86c4004 100644 --- a/packages/edge_io/lib/edge_io.dart +++ b/packages/edge_io/lib/edge_io.dart @@ -1,131 +1 @@ -import 'dart:io'; - -import 'package:edge_io/fs_adapter_platform_interface.dart'; - -import 'src/memory_fs_adapter.dart'; - -class EdgeIOOverrides implements IOOverrides { - final PlatformFSAdapter fsAdapter; - - EdgeIOOverrides({ - PlatformFSAdapter? fsAdapter, - }) : fsAdapter = fsAdapter ?? MemoryFSAdapter(); - - @override - Directory createDirectory(String path) { - final entity = fsAdapter.createEntity(path, FileSystemEntityType.directory); - return entity as Directory; - } - - @override - File createFile(String path) { - return fsAdapter.createEntity(path, FileSystemEntityType.file) as File; - } - - @override - Link createLink(String path) { - return fsAdapter.createEntity(path, FileSystemEntityType.link) as Link; - } - - @override - Stream fsWatch(String path, int events, bool recursive) { - return fsAdapter.watch(path, events, recursive); - } - - @override - bool fsWatchIsSupported() { - return fsAdapter.watchIsSupported(); - } - - @override - Future fseGetType(String path, bool followLinks) async { - return fsAdapter.getType(path, followLinks); - } - - @override - FileSystemEntityType fseGetTypeSync(String path, bool followLinks) { - return fsAdapter.getType(path, followLinks); - } - - @override - Future fseIdentical(String path1, String path2) async { - return fsAdapter.identical(path1, path2); - } - - @override - bool fseIdenticalSync(String path1, String path2) { - return fsAdapter.identical(path1, path2); - } - - @override - Directory getCurrentDirectory() { - return fsAdapter.getCurrentDirectory(); - } - - @override - Directory getSystemTempDirectory() { - return fsAdapter.getSystemTempDirectory(); - } - - @override - Future serverSocketBind( - address, - int port, { - int backlog = 0, - bool v6Only = false, - bool shared = false, - }) { - // TODO: implement serverSocketBind - throw UnimplementedError(); - } - - @override - void setCurrentDirectory(String path) { - fsAdapter.setCurrentDirectory(path); - } - - @override - Future socketConnect( - host, - int port, { - sourceAddress, - int sourcePort = 0, - Duration? timeout, - }) { - // TODO: implement socketConnect - throw UnimplementedError(); - } - - @override - Future> socketStartConnect( - host, - int port, { - sourceAddress, - int sourcePort = 0, - }) { - // TODO: implement socketStartConnect - throw UnimplementedError(); - } - - @override - Future stat(String path) async { - return fsAdapter.stat(path); - } - - @override - FileStat statSync(String path) { - return fsAdapter.stat(path); - } - - @override - // TODO: implement stderr - Stdout get stderr => throw UnimplementedError(); - - @override - // TODO: implement stdin - Stdin get stdin => throw UnimplementedError(); - - @override - // TODO: implement stdout - Stdout get stdout => throw UnimplementedError(); -} +export 'src/file_to_io_override_adapter.dart'; diff --git a/packages/edge_io/lib/file_system_platform_interface.dart b/packages/edge_io/lib/file_system_platform_interface.dart deleted file mode 100644 index 0390dc4..0000000 --- a/packages/edge_io/lib/file_system_platform_interface.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'dart:io'; - -abstract class FileSystemPlatform { - Directory get cwd; - set cwd(Directory directory); - - bool exists(String path, FileSystemEntityType type); - T rename(String path, String newPath); - T create( - String path, - T entity, { - bool recursive = false, - }); - - T? getEntity(String path); - FileStat stat(covariant FileSystemEntity entity); - - Iterable list( - String path, { - bool recursive = false, - bool followLinks = true, - }); -} diff --git a/packages/edge_io/lib/fs_adapter_platform_interface.dart b/packages/edge_io/lib/fs_adapter_platform_interface.dart deleted file mode 100644 index 4ab9f45..0000000 --- a/packages/edge_io/lib/fs_adapter_platform_interface.dart +++ /dev/null @@ -1,45 +0,0 @@ -import 'dart:io'; - -import 'package:edge_io/file_system_platform_interface.dart'; - -abstract class PlatformFSAdapter { - const PlatformFSAdapter(); - - T get fs; - - FileSystemEntity createEntity(String path, FileSystemEntityType type) { - throw UnimplementedError(); - } - - Stream watch(String path, int events, bool recursive) { - throw UnimplementedError(); - } - - bool watchIsSupported() { - throw UnimplementedError(); - } - - FileSystemEntityType getType(String path, bool followLinks) { - throw UnimplementedError(); - } - - bool identical(String path1, String path2) { - throw UnimplementedError(); - } - - Directory getCurrentDirectory() { - throw UnimplementedError(); - } - - Directory getSystemTempDirectory() { - throw UnimplementedError(); - } - - void setCurrentDirectory(String path) { - throw UnimplementedError(); - } - - FileStat stat(String path) { - throw UnimplementedError(); - } -} diff --git a/packages/edge_io/lib/src/memory_directory.dart b/packages/edge_io/lib/src/memory_directory.dart deleted file mode 100644 index 4f3b170..0000000 --- a/packages/edge_io/lib/src/memory_directory.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'dart:io'; -import 'dart:math'; -import 'dart:typed_data'; - -import 'package:path/path.dart' as p; - -import 'package:edge_io/file_system_platform_interface.dart'; -import 'memory_fse.dart'; - -final r = Random.secure(); -final chars = 'abcdefghijklmnopqrstuvwxyz0123456789'.split(''); - -String randomString(int length) { - final b = Uint8List(length); - - for (var i = 0; i < length; i++) { - b[i] = chars[r.nextInt(chars.length)].codeUnitAt(0); - } - - return String.fromCharCodes(b); -} - -class MemoryDirectory extends MemoryFSE implements Directory { - MemoryDirectory(FileSystemPlatform fs, String path) - : super(fs, path, FileSystemEntityType.directory); - - @override - int get size => 4; - - @override - Future create({bool recursive = false}) async { - return fs.create(path, this, recursive: recursive); - } - - @override - Directory ctor(String path) { - return MemoryDirectory(fs, path); - } - - @override - void createSync({bool recursive = false}) { - fs.create(path, this, recursive: recursive); - } - - @override - Future createTemp([String? prefix]) async { - return createTempSync(prefix); - } - - @override - Directory createTempSync([String? prefix]) { - final tmpPath = p.join(path, '${prefix ?? ''}${randomString(6)}'); - final tmpDir = MemoryDirectory(fs, path); - - return fs.create(tmpPath, tmpDir, recursive: true); - } - - @override - Stream list({ - bool recursive = false, - bool followLinks = true, - }) { - final iterable = fs.list( - path, - recursive: recursive, - followLinks: followLinks, - ); - - return Stream.fromIterable(iterable); - } - - @override - List listSync({ - bool recursive = false, - bool followLinks = true, - }) { - return fs - .list( - path, - recursive: recursive, - followLinks: followLinks, - ) - .toList(); - } -} diff --git a/packages/edge_io/lib/src/memory_fs.dart b/packages/edge_io/lib/src/memory_fs.dart deleted file mode 100644 index 5416993..0000000 --- a/packages/edge_io/lib/src/memory_fs.dart +++ /dev/null @@ -1,148 +0,0 @@ -import 'dart:io'; -import 'package:path/path.dart' as p; -import 'package:edge_io/file_system_platform_interface.dart'; - -import 'memory_directory.dart'; -import 'memory_fse.dart'; - -class _Entities { - final Map _pathsMap = {}; - - bool has(String path) { - return _pathsMap.containsKey(p.join(Directory.current.path, path)); - } - - MemoryFSE? operator [](String path) { - return _pathsMap[p.join(Directory.current.path, path)]; - } - - void operator []=(String path, MemoryFSE entity) { - final absolutePath = p.join(Directory.current.path, path); - _pathsMap[absolutePath] = entity; - } - - MemoryFSE? remove(String path) { - return _pathsMap.remove(p.join(Directory.current.path, path)); - } - - Iterable list( - String prefix, { - bool recursive = false, - bool followSymlinks = true, - }) sync* { - final absolutePrefix = p.join(Directory.current.path, prefix); - - for (final entry in _pathsMap.entries) { - if (entry.key == absolutePrefix) continue; - if (!entry.key.startsWith(absolutePrefix)) continue; - - switch (entry.value.type) { - case FileSystemEntityType.directory: - if (recursive) yield* (entry.value as MemoryDirectory).listSync(); - break; - case FileSystemEntityType.file: - yield entry.value; - break; - case FileSystemEntityType.link: - if (followSymlinks) { - yield* list(entry.value.path, recursive: recursive); - } - break; - default: - continue; - } - } - } -} - -class MemoryFS extends FileSystemPlatform { - @override - late Directory cwd; - - final _Entities _entities = _Entities(); - - MemoryFS({String cwd = '/'}) : cwd = Directory(p.absolute(cwd)); - - @override - bool exists(String path, FileSystemEntityType type) { - final entity = _entities[path]; - return entity?.type == type; - } - - @override - T rename(String path, String newPath) { - final entity = _entities.remove(path); - - try { - if (entity == null) { - throw FileSystemException('No such file or directory', path); - } - - final dstEntity = _entities[newPath]; - - if (dstEntity == null) { - _entities[newPath] = entity; - return entity as T; - } - - if (dstEntity.type != entity.type) { - throw FileSystemException('Incompatible file types', newPath); - } - - if (dstEntity.type == FileSystemEntityType.directory) { - if ((dstEntity as MemoryDirectory).listSync().isNotEmpty) { - throw FileSystemException('Directory not empty', newPath); - } - } - - _entities[newPath] = entity; - return entity as T; - } finally { - if (entity != null) { - _entities[path] = entity; - } - } - } - - @override - T create( - String path, - T entity, { - bool recursive = false, - }) { - final parent = p.dirname(path); - final parentExists = _entities.has(parent); - - if (!parentExists && !recursive) { - throw FileSystemException('No such file or directory', parent); - } - - if (_entities.has(path)) { - throw FileSystemException('File exists', path); - } else { - _entities[path] = entity as MemoryFSE; - return entity; - } - } - - @override - T? getEntity(String path) { - return _entities[path] as T; - } - - @override - FileStat stat(MemoryFSE entity) { - return entity.stats; - } - - @override - Iterable list( - String path, { - bool recursive = false, - bool followLinks = true, - }) { - return _entities - .list(path, recursive: recursive, followSymlinks: followLinks) - .cast(); - } -} diff --git a/packages/edge_io/lib/src/memory_fs_adapter.dart b/packages/edge_io/lib/src/memory_fs_adapter.dart deleted file mode 100644 index 8dbb488..0000000 --- a/packages/edge_io/lib/src/memory_fs_adapter.dart +++ /dev/null @@ -1,87 +0,0 @@ -import 'dart:io'; - -import 'package:path/path.dart' as p; - -import 'package:edge_io/fs_adapter_platform_interface.dart'; - -import 'memory_directory.dart'; -import 'memory_fs.dart'; -import 'memory_fse.dart'; - -class MemoryFSAdapter implements PlatformFSAdapter { - @override - late final MemoryFS fs; - - MemoryFSAdapter({String cwd = '/'}) : fs = MemoryFS(cwd: cwd); - - @override - FileSystemEntity createEntity(String path, FileSystemEntityType type) { - switch (type) { - case FileSystemEntityType.directory: - return MemoryDirectory(fs, path); - default: - throw FileSystemException('Unsupported entity type $type', path); - } - } - - @override - Directory getCurrentDirectory() { - return fs.cwd; - } - - @override - Directory getSystemTempDirectory() { - return MemoryDirectory(fs, '/tmp'); - } - - @override - FileSystemEntityType getType(String path, bool followLinks) { - final entity = fs.getEntity(path); - - if (entity == null) { - return FileSystemEntityType.notFound; - } - - return entity.type; - } - - @override - bool identical(String path1, String path2) { - final e1 = fs.getEntity(path1); - final e2 = fs.getEntity(path2); - - if (e1 == null || e2 == null) { - return false; - } - - return e1 == e2; - } - - @override - void setCurrentDirectory(String path) { - fs.cwd = Directory(p.join(fs.cwd.path, path)); - } - - @override - FileStat stat(String path) { - final entity = fs.getEntity(path); - - if (entity == null) { - throw FileSystemException('No such file or directory', path); - } - - return fs.stat(entity); - } - - @override - Stream watch(String path, int events, bool recursive) { - // TODO: implement watch - throw UnimplementedError(); - } - - @override - bool watchIsSupported() { - // TODO: implement watchIsSupported - throw UnimplementedError(); - } -} diff --git a/packages/edge_io/lib/src/memory_fse.dart b/packages/edge_io/lib/src/memory_fse.dart deleted file mode 100644 index 8cfc10d..0000000 --- a/packages/edge_io/lib/src/memory_fse.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'dart:io'; -import 'package:edge_io/file_system_platform_interface.dart'; -import 'package:path/path.dart' as p; - -import 'memory_stat.dart'; - -abstract class MemoryFSE extends FileSystemEntity { - late final String _absolutePath; - - @override - final String path; - final FileSystemEntityType type; - final FileSystemPlatform fs; - late final MemoryStat stats = MemoryStat(this); - - MemoryFSE(this.fs, this.path, this.type) { - _absolutePath = p.join(Directory.current.path, path); - } - - T ctor(String path); - - @override - T get absolute => ctor(_absolutePath); - - @override - Future exists() async { - return fs.exists(_absolutePath, type); - } - - @override - bool existsSync() { - return fs.exists(_absolutePath, type); - } - - @override - Future rename(String newPath) async { - return fs.rename(_absolutePath, newPath); - } - - @override - T renameSync(String newPath) { - return fs.rename(_absolutePath, newPath); - } - - int get size; -} diff --git a/packages/edge_io/lib/src/memory_link.dart b/packages/edge_io/lib/src/memory_link.dart deleted file mode 100644 index cef5a9c..0000000 --- a/packages/edge_io/lib/src/memory_link.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'dart:io'; - -import 'memory_fse.dart'; - -class MemoryLink extends MemoryFSE implements Link { - MemoryLink(super.fs, super.path, super.type); - - @override - Future create(String target, {bool recursive = false}) { - // TODO: implement create - throw UnimplementedError(); - } - - @override - void createSync(String target, {bool recursive = false}) { - // TODO: implement createSync - } - - @override - Link ctor(String path) { - // TODO: implement ctor - throw UnimplementedError(); - } - - @override - // TODO: implement size - int get size => throw UnimplementedError(); - - @override - Future target() { - // TODO: implement target - throw UnimplementedError(); - } - - @override - String targetSync() { - // TODO: implement targetSync - throw UnimplementedError(); - } - - @override - Future update(String target) { - // TODO: implement update - throw UnimplementedError(); - } - - @override - void updateSync(String target) { - // TODO: implement updateSync - } -} diff --git a/packages/edge_io/lib/src/memory_stat.dart b/packages/edge_io/lib/src/memory_stat.dart deleted file mode 100644 index 7113f0c..0000000 --- a/packages/edge_io/lib/src/memory_stat.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'dart:io'; - -import 'memory_fse.dart'; - -class MemoryStat implements FileStat { - final MemoryFSE entity; - - @override - late DateTime accessed; - @override - late DateTime changed; - @override - late DateTime modified; - - MemoryStat( - this.entity, { - DateTime? accessed, - DateTime? changed, - DateTime? modified, - }) { - final now = DateTime.now(); - accessed = now; - changed = now; - modified = now; - } - - @override - int get mode => throw UnimplementedError(); - - @override - String modeString() { - var permissions = mode & 0xFFF; - var codes = const ['---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx']; - var result = []; - if ((permissions & 0x800) != 0) result.add("(suid) "); - if ((permissions & 0x400) != 0) result.add("(guid) "); - if ((permissions & 0x200) != 0) result.add("(sticky) "); - result - ..add(codes[(permissions >> 6) & 0x7]) - ..add(codes[(permissions >> 3) & 0x7]) - ..add(codes[permissions & 0x7]); - return result.join(); - } - - @override - int get size => entity.size; - - @override - FileSystemEntityType get type => entity.type; -} diff --git a/packages/edge_io/test/file_test.dart b/packages/edge_io/test/file_test.dart deleted file mode 100644 index 8501b9c..0000000 --- a/packages/edge_io/test/file_test.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'dart:io'; - -import 'package:edge_io/edge_io.dart'; -import 'package:test/test.dart'; - -void main() { - setUpAll(() { - IOOverrides.global = EdgeIOOverrides(); - }); -} From a0f133964e4422c0b25af7907dd04118ac030132 Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Thu, 27 Apr 2023 10:57:27 +0200 Subject: [PATCH 16/19] Fix some lints --- packages/edge_io/bin/test.dart | 11 ----------- .../edge_io/lib/src/file_to_io_override_adapter.dart | 4 ++-- 2 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 packages/edge_io/bin/test.dart diff --git a/packages/edge_io/bin/test.dart b/packages/edge_io/bin/test.dart deleted file mode 100644 index 9026db9..0000000 --- a/packages/edge_io/bin/test.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'dart:io'; - -void main() { - final d = Directory.current; - - print(d.path); - - final temp = d.createTempSync(); - - print(temp.absolute.path); -} diff --git a/packages/edge_io/lib/src/file_to_io_override_adapter.dart b/packages/edge_io/lib/src/file_to_io_override_adapter.dart index e8d3606..96be5d6 100644 --- a/packages/edge_io/lib/src/file_to_io_override_adapter.dart +++ b/packages/edge_io/lib/src/file_to_io_override_adapter.dart @@ -46,7 +46,7 @@ class FileSystemToIoOverrideAdapter extends IOOverrides { _stdout = stdout, _serverSocketBind = serverSocketBind; - // TODO how to mock stdin? + // TODO(rrousselGit): how to mock stdin? @override Stdout get stderr => _stderr ?? super.stderr; @@ -305,7 +305,7 @@ class CustomStdout implements Stdout { @override Future flush() { - // TODO is there anything to do here? + // TODO(rrousselGit): is there anything to do here? return Future.value(); } From 404e991a51801eab98074ec30c0eb15d2934356e Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Thu, 27 Apr 2023 11:00:16 +0200 Subject: [PATCH 17/19] Delete lock files --- .../cloudflare-durable-objects/pubspec.lock | 354 ----------- examples/supabase-edge-functions/pubspec.lock | 488 --------------- examples/vercel-edge-shelf/pubspec.lock | 386 ------------ .../cloudflare_workers/example/pubspec.lock | 354 ----------- packages/cloudflare_workers/pubspec.lock | 539 ----------------- packages/deno_deploy/pubspec.lock | 60 -- packages/edge/pubspec.lock | 317 ---------- packages/edge_http_client/pubspec.lock | 412 ------------- packages/edge_runtime/example/pubspec.lock | 347 ----------- packages/edge_runtime/pubspec.lock | 565 ------------------ packages/netlify_edge/example/pubspec.lock | 354 ----------- packages/netlify_edge/pubspec.lock | 531 ---------------- .../supabase_functions/example/pubspec.lock | 361 ----------- packages/supabase_functions/pubspec.lock | 538 ----------------- packages/vercel_edge/example/pubspec.lock | 386 ------------ packages/vercel_edge/pubspec.lock | 531 ---------------- pubspec.lock | 293 --------- 17 files changed, 6816 deletions(-) delete mode 100644 examples/cloudflare-durable-objects/pubspec.lock delete mode 100644 examples/supabase-edge-functions/pubspec.lock delete mode 100644 examples/vercel-edge-shelf/pubspec.lock delete mode 100644 packages/cloudflare_workers/example/pubspec.lock delete mode 100644 packages/cloudflare_workers/pubspec.lock delete mode 100644 packages/deno_deploy/pubspec.lock delete mode 100644 packages/edge/pubspec.lock delete mode 100644 packages/edge_http_client/pubspec.lock delete mode 100644 packages/edge_runtime/example/pubspec.lock delete mode 100644 packages/edge_runtime/pubspec.lock delete mode 100644 packages/netlify_edge/example/pubspec.lock delete mode 100644 packages/netlify_edge/pubspec.lock delete mode 100644 packages/supabase_functions/example/pubspec.lock delete mode 100644 packages/supabase_functions/pubspec.lock delete mode 100644 packages/vercel_edge/example/pubspec.lock delete mode 100644 packages/vercel_edge/pubspec.lock delete mode 100644 pubspec.lock diff --git a/examples/cloudflare-durable-objects/pubspec.lock b/examples/cloudflare-durable-objects/pubspec.lock deleted file mode 100644 index 8eaf2b5..0000000 --- a/examples/cloudflare-durable-objects/pubspec.lock +++ /dev/null @@ -1,354 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - cloudflare_workers: - dependency: "direct main" - description: - path: "../../packages/cloudflare_workers" - relative: true - source: path - version: "0.0.4" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../../packages/edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../packages/edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/examples/supabase-edge-functions/pubspec.lock b/examples/supabase-edge-functions/pubspec.lock deleted file mode 100644 index c41687d..0000000 --- a/examples/supabase-edge-functions/pubspec.lock +++ /dev/null @@ -1,488 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - deno_deploy: - dependency: "direct overridden" - description: - path: "../../packages/deno_deploy" - relative: true - source: path - version: "0.0.1-dev.4" - edge: - dependency: "direct main" - description: - path: "../../packages/edge" - relative: true - source: path - version: "0.0.6" - edge_http_client: - dependency: "direct main" - description: - path: "../../packages/edge_http_client" - relative: true - source: path - version: "0.0.1" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../packages/edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - functions_client: - dependency: transitive - description: - name: functions_client - sha256: e82e7325c0fc04d751aca9aaaf7b9e9d599e1e5cf869e0cb7c762a5f53784c71 - url: "https://pub.dev" - source: hosted - version: "1.1.1" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - gotrue: - dependency: transitive - description: - name: gotrue - sha256: da1528e2de8ec626e04ee93aee6d055b53ab06388cf1a36ffd1d9af776da31f3 - url: "https://pub.dev" - source: hosted - version: "1.5.7" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "728c0613556c1d153f7e7f4a367cffacc3f5a677d7f6497a1c2b35add4e6dacf" - url: "https://pub.dev" - source: hosted - version: "3.0.6" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - jwt_decode: - dependency: transitive - description: - name: jwt_decode - sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb - url: "https://pub.dev" - source: hosted - version: "0.3.1" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d122e582f4c332b33d95289aafdea475ff5446e9939338b4b6330e2e488ed4e1 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.48" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: a9346a3fbba7546a28374bdbcd7f54ea48bb47772bf3a7ab4bfaadc40bc8b8c6 - url: "https://pub.dev" - source: hosted - version: "5.3.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: c3120a968135aead39699267f4c74bc9a08e4e909e86bc1b0af5bfd78691123c - url: "https://pub.dev" - source: hosted - version: "3.7.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - postgrest: - dependency: transitive - description: - name: postgrest - sha256: b6c2d1b58e648bdf1e6c775a90064ae1c505879b439c30028cfc5072969e8601 - url: "https://pub.dev" - source: hosted - version: "1.2.3" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - realtime_client: - dependency: transitive - description: - name: realtime_client - sha256: "467ef702a35858004a1b9c475dc0ebc0b858ade758e99295beda7f101d523198" - url: "https://pub.dev" - source: hosted - version: "1.0.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - retry: - dependency: transitive - description: - name: retry - sha256: a8a1e475a100a0bdc73f529ca8ea1e9c9c76bec8ad86a1f47780139a34ce7aea - url: "https://pub.dev" - source: hosted - version: "3.1.1" - rxdart: - dependency: transitive - description: - name: rxdart - sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" - url: "https://pub.dev" - source: hosted - version: "0.27.7" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - storage_client: - dependency: transitive - description: - name: storage_client - sha256: d0fefd2e68e14ced989197b6f4f1933290d32fcd633003aafd7a325e4143ddd3 - url: "https://pub.dev" - source: hosted - version: "1.2.5" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - supabase: - dependency: "direct main" - description: - name: supabase - sha256: d3c7978c547260950d5b9cbfe7351bc883a16c916c12f3c9c6963b084f42a516 - url: "https://pub.dev" - source: hosted - version: "1.6.3" - supabase_functions: - dependency: "direct main" - description: - path: "../../packages/supabase_functions" - relative: true - source: path - version: "0.0.2" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - universal_io: - dependency: transitive - description: - name: universal_io - sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: f6deed8ed625c52864792459709183da231ebf66ff0cf09e69b573227c377efe - url: "https://pub.dev" - source: hosted - version: "11.3.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - yet_another_json_isolate: - dependency: "direct main" - description: - name: yet_another_json_isolate - sha256: cfaaaf91a1a7f4b226a4fbc72b6db2adadccea1bfa337aef9827d2d0cce6d79a - url: "https://pub.dev" - source: hosted - version: "1.0.2" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/examples/vercel-edge-shelf/pubspec.lock b/examples/vercel-edge-shelf/pubspec.lock deleted file mode 100644 index d363359..0000000 --- a/examples/vercel-edge-shelf/pubspec.lock +++ /dev/null @@ -1,386 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../../packages/edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../packages/edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_methods: - dependency: transitive - description: - name: http_methods - sha256: c192bb6fb4ae99d06053f67a2c1c65350a29bc778a39d9a12b96bd2ec820e9dc - url: "https://pub.dev" - source: hosted - version: "1.1.0" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf: - dependency: "direct main" - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_router: - dependency: "direct main" - description: - name: shelf_router - sha256: "0b0bfb835e8b2bb43c5341ee689f0d2851e9cea377a4f2db4ec06a1a99beace4" - url: "https://pub.dev" - source: hosted - version: "1.1.3" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vercel_edge: - dependency: "direct main" - description: - path: "../../packages/vercel_edge" - relative: true - source: path - version: "0.0.4" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/cloudflare_workers/example/pubspec.lock b/packages/cloudflare_workers/example/pubspec.lock deleted file mode 100644 index 7c1ab90..0000000 --- a/packages/cloudflare_workers/example/pubspec.lock +++ /dev/null @@ -1,354 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - cloudflare_workers: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.0.4" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/cloudflare_workers/pubspec.lock b/packages/cloudflare_workers/pubspec.lock deleted file mode 100644 index d9fe4e8..0000000 --- a/packages/cloudflare_workers/pubspec.lock +++ /dev/null @@ -1,539 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "569ddca58d535e601dd1584afa117710abc999d036c0cd2c51777fb257df78e8" - url: "https://pub.dev" - source: hosted - version: "53.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: "10927c4b7c7c88b1adbca278c3d5531db92e2f4b4abf04e2919a800af965f3f5" - url: "https://pub.dev" - source: hosted - version: "5.5.0" - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - coverage: - dependency: transitive - description: - name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" - source: hosted - version: "1.6.3" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct main" - description: - path: "../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: "direct main" - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: "direct main" - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - node_interop: - dependency: "direct dev" - description: - name: node_interop - sha256: "3af2420c728173806f4378cf89c53ba9f27f7f67792b898561bff9d390deb98e" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf: - dependency: transitive - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" - source: hosted - version: "1.1.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" - source: hosted - version: "1.0.3" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" - url: "https://pub.dev" - source: hosted - version: "0.10.12" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test: - dependency: "direct dev" - description: - name: test - sha256: "5301f54eb6fe945daa99bc8df6ece3f88b5ceaa6f996f250efdaaf63e22886be" - url: "https://pub.dev" - source: hosted - version: "1.23.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" - url: "https://pub.dev" - source: hosted - version: "0.4.18" - test_core: - dependency: transitive - description: - name: test_core - sha256: d2e9240594b409565524802b84b7b39341da36dd6fd8e1660b53ad928ec3e9af - url: "https://pub.dev" - source: hosted - version: "0.4.24" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/deno_deploy/pubspec.lock b/packages/deno_deploy/pubspec.lock deleted file mode 100644 index 68cde0d..0000000 --- a/packages/deno_deploy/pubspec.lock +++ /dev/null @@ -1,60 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - edge_runtime: - dependency: "direct main" - description: - path: "../edge_runtime" - relative: true - source: path - version: "0.0.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - js: - dependency: "direct main" - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: "direct main" - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge/pubspec.lock b/packages/edge/pubspec.lock deleted file mode 100644 index 75e67be..0000000 --- a/packages/edge/pubspec.lock +++ /dev/null @@ -1,317 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: "direct main" - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: "direct main" - description: - name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - glob: - dependency: "direct main" - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: "direct main" - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: "direct main" - description: - name: mason - sha256: e7b919e7d1f300504017d168d0d4d253cd06ef812149561d984abd3af8ad3ee2 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.41" - mason_logger: - dependency: "direct main" - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: "direct main" - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" - url: "https://pub.dev" - source: hosted - version: "5.1.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: "direct main" - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: "direct main" - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: "direct main" - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge_http_client/pubspec.lock b/packages/edge_http_client/pubspec.lock deleted file mode 100644 index c19c935..0000000 --- a/packages/edge_http_client/pubspec.lock +++ /dev/null @@ -1,412 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201" - url: "https://pub.dev" - source: hosted - version: "52.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4 - url: "https://pub.dev" - source: hosted - version: "5.4.0" - args: - dependency: transitive - description: - name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - coverage: - dependency: transitive - description: - name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" - source: hosted - version: "1.6.3" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge_runtime: - dependency: "direct main" - description: - path: "../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - http: - dependency: "direct main" - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - shelf: - dependency: transitive - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" - source: hosted - version: "1.1.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" - source: hosted - version: "1.0.3" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427" - url: "https://pub.dev" - source: hosted - version: "0.10.11" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test: - dependency: "direct dev" - description: - name: test - sha256: b54d427664c00f2013ffb87797a698883c46aee9288e027a50b46eaee7486fa2 - url: "https://pub.dev" - source: hosted - version: "1.22.2" - test_api: - dependency: transitive - description: - name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" - url: "https://pub.dev" - source: hosted - version: "0.4.18" - test_core: - dependency: transitive - description: - name: test_core - sha256: "95ecc12692d0dd59080ab2d38d9cf32c7e9844caba23ff6cd285690398ee8ef4" - url: "https://pub.dev" - source: hosted - version: "0.4.22" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "2277c73618916ae3c2082b6df67b6ebb64b4c69d9bf23b23700707952ac30e60" - url: "https://pub.dev" - source: hosted - version: "10.1.2" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge_runtime/example/pubspec.lock b/packages/edge_runtime/example/pubspec.lock deleted file mode 100644 index dff65b5..0000000 --- a/packages/edge_runtime/example/pubspec.lock +++ /dev/null @@ -1,347 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/edge_runtime/pubspec.lock b/packages/edge_runtime/pubspec.lock deleted file mode 100644 index baf3844..0000000 --- a/packages/edge_runtime/pubspec.lock +++ /dev/null @@ -1,565 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201" - url: "https://pub.dev" - source: hosted - version: "52.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4 - url: "https://pub.dev" - source: hosted - version: "5.4.0" - args: - dependency: transitive - description: - name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - build: - dependency: transitive - description: - name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" - url: "https://pub.dev" - source: hosted - version: "2.3.1" - build_config: - dependency: transitive - description: - name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 - url: "https://pub.dev" - source: hosted - version: "1.1.1" - build_daemon: - dependency: transitive - description: - name: build_daemon - sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - build_resolvers: - dependency: transitive - description: - name: build_resolvers - sha256: "7c35a3a7868626257d8aee47b51c26b9dba11eaddf3431117ed2744951416aab" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - build_runner: - dependency: "direct dev" - description: - name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 - url: "https://pub.dev" - source: hosted - version: "2.3.3" - build_runner_core: - dependency: transitive - description: - name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" - url: "https://pub.dev" - source: hosted - version: "7.2.7" - built_collection: - dependency: transitive - description: - name: built_collection - sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.dev" - source: hosted - version: "5.1.1" - built_value: - dependency: transitive - description: - name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" - url: "https://pub.dev" - source: hosted - version: "8.4.3" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - code_builder: - dependency: transitive - description: - name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" - url: "https://pub.dev" - source: hosted - version: "4.4.0" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - coverage: - dependency: transitive - description: - name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" - source: hosted - version: "1.6.3" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - dart_style: - dependency: transitive - description: - name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" - url: "https://pub.dev" - source: hosted - version: "2.2.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - freezed: - dependency: "direct dev" - description: - name: freezed - sha256: e819441678f1679b719008ff2ff0ef045d66eed9f9ec81166ca0d9b02a187454 - url: "https://pub.dev" - source: hosted - version: "2.3.2" - freezed_annotation: - dependency: "direct main" - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - graphs: - dependency: transitive - description: - name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - http: - dependency: "direct dev" - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_methods: - dependency: transitive - description: - name: http_methods - sha256: c192bb6fb4ae99d06053f67a2c1c65350a29bc778a39d9a12b96bd2ec820e9dc - url: "https://pub.dev" - source: hosted - version: "1.1.0" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: "direct main" - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: "direct main" - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - pubspec_parse: - dependency: transitive - description: - name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" - url: "https://pub.dev" - source: hosted - version: "1.2.1" - shelf: - dependency: "direct dev" - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - shelf_router: - dependency: "direct dev" - description: - name: shelf_router - sha256: "0b0bfb835e8b2bb43c5341ee689f0d2851e9cea377a4f2db4ec06a1a99beace4" - url: "https://pub.dev" - source: hosted - version: "1.1.3" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" - source: hosted - version: "1.1.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" - source: hosted - version: "1.0.3" - source_gen: - dependency: transitive - description: - name: source_gen - sha256: c2bea18c95cfa0276a366270afaa2850b09b4a76db95d546f3d003dcc7011298 - url: "https://pub.dev" - source: hosted - version: "1.2.7" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427" - url: "https://pub.dev" - source: hosted - version: "0.10.11" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test: - dependency: "direct dev" - description: - name: test - sha256: b54d427664c00f2013ffb87797a698883c46aee9288e027a50b46eaee7486fa2 - url: "https://pub.dev" - source: hosted - version: "1.22.2" - test_api: - dependency: transitive - description: - name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" - url: "https://pub.dev" - source: hosted - version: "0.4.18" - test_core: - dependency: transitive - description: - name: test_core - sha256: "95ecc12692d0dd59080ab2d38d9cf32c7e9844caba23ff6cd285690398ee8ef4" - url: "https://pub.dev" - source: hosted - version: "0.4.22" - timing: - dependency: transitive - description: - name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "2277c73618916ae3c2082b6df67b6ebb64b4c69d9bf23b23700707952ac30e60" - url: "https://pub.dev" - source: hosted - version: "10.1.2" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/netlify_edge/example/pubspec.lock b/packages/netlify_edge/example/pubspec.lock deleted file mode 100644 index 6e97702..0000000 --- a/packages/netlify_edge/example/pubspec.lock +++ /dev/null @@ -1,354 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - netlify_edge: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.0.1-dev.10" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/netlify_edge/pubspec.lock b/packages/netlify_edge/pubspec.lock deleted file mode 100644 index 2f0da05..0000000 --- a/packages/netlify_edge/pubspec.lock +++ /dev/null @@ -1,531 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "569ddca58d535e601dd1584afa117710abc999d036c0cd2c51777fb257df78e8" - url: "https://pub.dev" - source: hosted - version: "53.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: "10927c4b7c7c88b1adbca278c3d5531db92e2f4b4abf04e2919a800af965f3f5" - url: "https://pub.dev" - source: hosted - version: "5.5.0" - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - coverage: - dependency: transitive - description: - name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" - source: hosted - version: "1.6.3" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct main" - description: - path: "../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: "direct main" - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: "direct main" - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - path: - dependency: "direct main" - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf: - dependency: transitive - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" - source: hosted - version: "1.1.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" - source: hosted - version: "1.0.3" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" - url: "https://pub.dev" - source: hosted - version: "0.10.12" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test: - dependency: "direct dev" - description: - name: test - sha256: "5301f54eb6fe945daa99bc8df6ece3f88b5ceaa6f996f250efdaaf63e22886be" - url: "https://pub.dev" - source: hosted - version: "1.23.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" - url: "https://pub.dev" - source: hosted - version: "0.4.18" - test_core: - dependency: transitive - description: - name: test_core - sha256: d2e9240594b409565524802b84b7b39341da36dd6fd8e1660b53ad928ec3e9af - url: "https://pub.dev" - source: hosted - version: "0.4.24" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/supabase_functions/example/pubspec.lock b/packages/supabase_functions/example/pubspec.lock deleted file mode 100644 index 5100fbc..0000000 --- a/packages/supabase_functions/example/pubspec.lock +++ /dev/null @@ -1,361 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - deno_deploy: - dependency: "direct overridden" - description: - path: "../../deno_deploy" - relative: true - source: path - version: "0.0.1-dev.4" - edge: - dependency: "direct main" - description: - path: "../../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: e7b919e7d1f300504017d168d0d4d253cd06ef812149561d984abd3af8ad3ee2 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.41" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" - url: "https://pub.dev" - source: hosted - version: "5.1.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - supabase_functions: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.0.2" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/supabase_functions/pubspec.lock b/packages/supabase_functions/pubspec.lock deleted file mode 100644 index 18f1076..0000000 --- a/packages/supabase_functions/pubspec.lock +++ /dev/null @@ -1,538 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201" - url: "https://pub.dev" - source: hosted - version: "52.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4 - url: "https://pub.dev" - source: hosted - version: "5.4.0" - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - coverage: - dependency: transitive - description: - name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" - source: hosted - version: "1.6.3" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - deno_deploy: - dependency: "direct main" - description: - path: "../deno_deploy" - relative: true - source: path - version: "0.0.1-dev.4" - edge: - dependency: "direct main" - description: - path: "../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct main" - description: - path: "../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: "direct main" - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: "direct main" - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: e7b919e7d1f300504017d168d0d4d253cd06ef812149561d984abd3af8ad3ee2 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.41" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" - url: "https://pub.dev" - source: hosted - version: "5.1.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf: - dependency: transitive - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" - source: hosted - version: "1.1.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" - source: hosted - version: "1.0.3" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427" - url: "https://pub.dev" - source: hosted - version: "0.10.11" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test: - dependency: "direct dev" - description: - name: test - sha256: fad866af0eab867e2c96623e25fe9f7e4d598a1f19e3da3a70b52fe4083cb145 - url: "https://pub.dev" - source: hosted - version: "1.23.0" - test_api: - dependency: transitive - description: - name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" - url: "https://pub.dev" - source: hosted - version: "0.4.18" - test_core: - dependency: transitive - description: - name: test_core - sha256: d345256d1f4a63c8193ba40e4657dea57c2f92a6b7501657ec7f3f57dd26769d - url: "https://pub.dev" - source: hosted - version: "0.4.23" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/vercel_edge/example/pubspec.lock b/packages/vercel_edge/example/pubspec.lock deleted file mode 100644 index aa750ba..0000000 --- a/packages/vercel_edge/example/pubspec.lock +++ /dev/null @@ -1,386 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct overridden" - description: - path: "../../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_methods: - dependency: transitive - description: - name: http_methods - sha256: c192bb6fb4ae99d06053f67a2c1c65350a29bc778a39d9a12b96bd2ec820e9dc - url: "https://pub.dev" - source: hosted - version: "1.1.0" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: transitive - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf: - dependency: "direct main" - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_router: - dependency: "direct main" - description: - name: shelf_router - sha256: "0b0bfb835e8b2bb43c5341ee689f0d2851e9cea377a4f2db4ec06a1a99beace4" - url: "https://pub.dev" - source: hosted - version: "1.1.3" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vercel_edge: - dependency: "direct main" - description: - path: ".." - relative: true - source: path - version: "0.0.4" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/packages/vercel_edge/pubspec.lock b/packages/vercel_edge/pubspec.lock deleted file mode 100644 index 6ab54a3..0000000 --- a/packages/vercel_edge/pubspec.lock +++ /dev/null @@ -1,531 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "569ddca58d535e601dd1584afa117710abc999d036c0cd2c51777fb257df78e8" - url: "https://pub.dev" - source: hosted - version: "53.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: "10927c4b7c7c88b1adbca278c3d5531db92e2f4b4abf04e2919a800af965f3f5" - url: "https://pub.dev" - source: hosted - version: "5.5.0" - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - archive: - dependency: transitive - description: - name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.dev" - source: hosted - version: "3.3.6" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - coverage: - dependency: transitive - description: - name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" - url: "https://pub.dev" - source: hosted - version: "1.6.3" - crypto: - dependency: transitive - description: - name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.dev" - source: hosted - version: "3.0.2" - edge: - dependency: "direct main" - description: - path: "../edge" - relative: true - source: path - version: "0.0.6" - edge_runtime: - dependency: "direct main" - description: - path: "../edge_runtime" - relative: true - source: path - version: "0.0.4" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66b78edf340352fcdd2043ab6116e58ec018c5968cab6485cde0f1769d28e0b8" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: "direct main" - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" - js_bindings: - dependency: "direct main" - description: - name: js_bindings - sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926" - url: "https://pub.dev" - source: hosted - version: "0.1.2+1" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - lints: - dependency: "direct dev" - description: - name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - logging: - dependency: transitive - description: - name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - mason: - dependency: transitive - description: - name: mason - sha256: d955859f39414165bb226a805f6dfa3d254a4c80c1358e1acef168e2b69799f7 - url: "https://pub.dev" - source: hosted - version: "0.1.0-dev.42" - mason_logger: - dependency: transitive - description: - name: mason_logger - sha256: ca34d14e998cd7a7738e7320b102aa45fb363aa49a290084b211ababf75bb7ee - url: "https://pub.dev" - source: hosted - version: "0.2.5" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mime: - dependency: transitive - description: - name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.dev" - source: hosted - version: "1.0.4" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "32e46db8021f6d027d9221b937653f5c8aa043e0dc093998e18331912f22936b" - url: "https://pub.dev" - source: hosted - version: "5.2.0" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.dev" - source: hosted - version: "3.6.2" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf: - dependency: "direct main" - description: - name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.dev" - source: hosted - version: "1.4.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c - url: "https://pub.dev" - source: hosted - version: "1.1.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.dev" - source: hosted - version: "1.0.3" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" - url: "https://pub.dev" - source: hosted - version: "0.10.12" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test: - dependency: "direct dev" - description: - name: test - sha256: "5301f54eb6fe945daa99bc8df6ece3f88b5ceaa6f996f250efdaaf63e22886be" - url: "https://pub.dev" - source: hosted - version: "1.23.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "6182294da5abf431177fccc1ee02401f6df30f766bc6130a0852c6b6d7ee6b2d" - url: "https://pub.dev" - source: hosted - version: "0.4.18" - test_core: - dependency: transitive - description: - name: test_core - sha256: d2e9240594b409565524802b84b7b39341da36dd6fd8e1660b53ad928ec3e9af - url: "https://pub.dev" - source: hosted - version: "0.4.24" - toml: - dependency: transitive - description: - name: toml - sha256: "69756bc12eccf279b72217a87310d217efc4b3752f722e890f672801f19ac485" - url: "https://pub.dev" - source: hosted - version: "0.13.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 - url: "https://pub.dev" - source: hosted - version: "9.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.dev" - source: hosted - version: "2.3.0" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" -sdks: - dart: ">=2.19.0 <3.0.0" diff --git a/pubspec.lock b/pubspec.lock deleted file mode 100644 index 5aeee97..0000000 --- a/pubspec.lock +++ /dev/null @@ -1,293 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - args: - dependency: transitive - description: - name: args - sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 - url: "https://pub.dev" - source: hosted - version: "1.3.1" - cli_launcher: - dependency: transitive - description: - name: cli_launcher - sha256: "5e7e0282b79e8642edd6510ee468ae2976d847a0a29b3916e85f5fa1bfe24005" - url: "https://pub.dev" - source: hosted - version: "0.3.1" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" - url: "https://pub.dev" - source: hosted - version: "0.3.5" - collection: - dependency: transitive - description: - name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" - source: hosted - version: "1.17.1" - conventional_commit: - dependency: transitive - description: - name: conventional_commit - sha256: "8eee25c315cf1946215d02d598402ca75cfee8a8ab482f3fac34cb0717323afa" - url: "https://pub.dev" - source: hosted - version: "0.6.0" - file: - dependency: transitive - description: - name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.dev" - source: hosted - version: "6.1.4" - glob: - dependency: transitive - description: - name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - graphs: - dependency: transitive - description: - name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 - url: "https://pub.dev" - source: hosted - version: "2.2.0" - http: - dependency: transitive - description: - name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.dev" - source: hosted - version: "0.13.5" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - matcher: - dependency: transitive - description: - name: matcher - sha256: c94db23593b89766cda57aab9ac311e3616cf87c6fa4e9749df032f66f30dcb8 - url: "https://pub.dev" - source: hosted - version: "0.12.14" - melos: - dependency: "direct dev" - description: - name: melos - sha256: cd8e7db0250ee822c5354a8214afc751b6c1c41aadfbbef927456d509d953244 - url: "https://pub.dev" - source: hosted - version: "3.0.0" - meta: - dependency: transitive - description: - name: meta - sha256: "12307e7f0605ce3da64cf0db90e5fcab0869f3ca03f76be6bb2991ce0a55e82b" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" - source: hosted - version: "1.8.3" - platform: - dependency: transitive - description: - name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - process: - dependency: transitive - description: - name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" - url: "https://pub.dev" - source: hosted - version: "4.2.4" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - pub_updater: - dependency: transitive - description: - name: pub_updater - sha256: "42890302ab2672adf567dc2b20e55b4ecc29d7e19c63b6b98143ab68dd717d3a" - url: "https://pub.dev" - source: hosted - version: "0.2.4" - pubspec: - dependency: transitive - description: - name: pubspec - sha256: f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e - url: "https://pub.dev" - source: hosted - version: "2.3.0" - quiver: - dependency: transitive - description: - name: quiver - sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 - url: "https://pub.dev" - source: hosted - version: "3.2.1" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - uri: - dependency: transitive - description: - name: uri - sha256: "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - yaml_edit: - dependency: transitive - description: - name: yaml_edit - sha256: "0b968021754d8fbd3e9c83563b538ee417d88b2cc587606da5615546b7ee033b" - url: "https://pub.dev" - source: hosted - version: "2.1.0" -sdks: - dart: ">=2.18.0 <3.0.0" From 90c15f49ac11635ccaba49c340948ceb7537c454 Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Thu, 27 Apr 2023 11:00:48 +0200 Subject: [PATCH 18/19] Ignore pubspec.lock files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index c746836..3732004 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +pubspec.lock + # Files and directories created by pub. .dart_tool/ .vercel From 5f300154845cb58a4899b01442f098cb58b46bf0 Mon Sep 17 00:00:00 2001 From: Remi Rousselet Date: Thu, 27 Apr 2023 11:03:49 +0200 Subject: [PATCH 19/19] Ignore lock files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index c746836..3732004 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +pubspec.lock + # Files and directories created by pub. .dart_tool/ .vercel