[camera_web] Make plugin publishable for the first time. (#4304)

diff --git a/packages/camera/camera_web/CHANGELOG.md b/packages/camera/camera_web/CHANGELOG.md
index a481554..b116636 100644
--- a/packages/camera/camera_web/CHANGELOG.md
+++ b/packages/camera/camera_web/CHANGELOG.md
@@ -1,8 +1,3 @@
-## 0.1.0+1
+## 0.2.0
 
-* Add `implements` to pubspec.
-
-## 0.1.0
-
-* Initial release
-  * Added CameraOptions used to constrain the camera audio and video.
+* Initial release, adapted from the Flutter [I/O Photobooth](https://photobooth.flutter.dev/) project.
diff --git a/packages/camera/camera_web/README.md b/packages/camera/camera_web/README.md
index 8c216b3..c6e1e0f 100644
--- a/packages/camera/camera_web/README.md
+++ b/packages/camera/camera_web/README.md
@@ -6,7 +6,10 @@
 
 ## Usage
 
-This package is [endorsed](https://flutter.dev/docs/development/packages-and-plugins/developing-packages#endorsed-federated-plugin), which means you can simply use `camera` normally. This package will be automatically included in your app when you do.
+### Depend on the package
+
+This package is not an [endorsed implementation](https://flutter.dev/docs/development/packages-and-plugins/developing-packages#endorsed-federated-plugin)
+of the google_maps_flutter plugin yet, so you'll need to [add it explicitly](https://pub.dev/packages/camera_web/install).
 
 ## Example
 
@@ -16,41 +19,59 @@
 
 ### Camera devices
 
-The camera devices are accessed with [Stream Web API](https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API) with the following [browser support](https://caniuse.com/stream):
+The camera devices are accessed with [Stream Web API](https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API)
+with the following [browser support](https://caniuse.com/stream):
 
 ![Data on support for the Stream feature across the major browsers from caniuse.com](https://caniuse.bitsofco.de/image/stream.png)
 
-Accessing camera devices requires a [secure browsing context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts). This means that you might need to serve your web application over HTTPS. For insecure contexts `CameraPlatform.availableCameras` might throw a `CameraException` with the `permissionDenied` error code.
+Accessing camera devices requires a [secure browsing context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).
+Broadly speaking, this means that you need to serve your web application over HTTPS
+(or `localhost` for local development). For insecure contexts
+`CameraPlatform.availableCameras` might throw a `CameraException` with the
+`permissionDenied` error code.
 
 ### Device orientation
 
-The device orientation implementation is backed by [`Screen Orientation Web API`](https://www.w3.org/TR/screen-orientation/) with the following [browser support](https://caniuse.com/screen-orientation):
+The device orientation implementation is backed by [`Screen Orientation Web API`](https://www.w3.org/TR/screen-orientation/)
+with the following [browser support](https://caniuse.com/screen-orientation):
 
 ![Data on support for the Screen Orientation feature across the major browsers from caniuse.com](https://caniuse.bitsofco.de/image/screen-orientation.png)
 
 For the browsers that do not support the device orientation:
+
 - `CameraPlatform.onDeviceOrientationChanged` returns an empty stream.
-- `CameraPlatform.lockCaptureOrientation` and `CameraPlatform.unlockCaptureOrientation` throw a `PlatformException` with the `orientationNotSupported` error code.
+- `CameraPlatform.lockCaptureOrientation` and `CameraPlatform.unlockCaptureOrientation`
+throw a `PlatformException` with the `orientationNotSupported` error code.
 
 ### Flash mode and zoom level
 
-The flash mode and zoom level implementation is backed by [Image Capture Web API](https://w3c.github.io/mediacapture-image/) with the following [browser support](https://caniuse.com/mdn-api_imagecapture) (as of 12 August 2021):
+The flash mode and zoom level implementation is backed by [Image Capture Web API](https://w3c.github.io/mediacapture-image/)
+with the following [browser support](https://caniuse.com/mdn-api_imagecapture):
 
-![Data on support for the Image Capture feature across the major browsers from caniuse.com](https://caniuse.bitsofco.de/static/v1/mdn-api__ImageCapture-1628778966589.png) 
+![Data on support for the Image Capture feature across the major browsers from caniuse.com](https://caniuse.bitsofco.de/static/v1/mdn-api__ImageCapture-1628778966589.png)
 
 For the browsers that do not support the flash mode:
-- `CameraPlatform.setFlashMode` throws a `PlatformException` with the `torchModeNotSupported` error code.
+
+- `CameraPlatform.setFlashMode` throws a `PlatformException` with the
+`torchModeNotSupported` error code.
 
 For the browsers that do not support the zoom level:
-- `CameraPlatform.getMaxZoomLevel`, `CameraPlatform.getMinZoomLevel` and `CameraPlatform.setZoomLevel` throw a `PlatformException` with the `zoomLevelNotSupported` error code.
+
+- `CameraPlatform.getMaxZoomLevel`, `CameraPlatform.getMinZoomLevel` and
+`CameraPlatform.setZoomLevel` throw a `PlatformException` with the
+`zoomLevelNotSupported` error code.
 
 ### Taking a picture
 
-The image capturing implementation is backed by [`URL.createObjectUrl` Web API](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL) with the following [browser support](https://caniuse.com/bloburls):
+The image capturing implementation is backed by [`URL.createObjectUrl` Web API](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL)
+with the following [browser support](https://caniuse.com/bloburls):
 
 ![Data on support for the Blob URLs feature across the major browsers from caniuse.com](https://caniuse.bitsofco.de/image/bloburls.png)
 
-The web platform does not support `dart:io`. Attempts to display a captured image using `Image.file` will throw an error. The capture image contains a network-accessible URL pointing to a location within the browser and should be displayed using `Image.network` or `Image.memory` after loading the image bytes to memory.
+The web platform does not support `dart:io`. Attempts to display a captured image
+using `Image.file` will throw an error. The capture image contains a network-accessible
+URL pointing to a location within the browser (blob) and can be displayed using
+`Image.network` or `Image.memory` after loading the image bytes to memory.
 
 See the example below:
 
@@ -65,13 +86,13 @@
 ## Missing implementation
 
 The web implementation of [`camera`][camera] is missing the following features:
-- Video recording
+
+- Video recording ([in progress](https://github.com/flutter/plugins/pull/4210))
 - Exposure mode, point and offset
 - Focus mode and point
-- Camera closing events
-- Camera sensor orientation
-- Camera image format group
-- Camera image streaming
+- Sensor orientation
+- Image format group
+- Streaming of frames
 
 <!-- Links -->
-[camera]: https://pub.dev/packages/camera
\ No newline at end of file
+[camera]: https://pub.dev/packages/camera
diff --git a/packages/camera/camera_web/pubspec.yaml b/packages/camera/camera_web/pubspec.yaml
index 70194d9..fdfe3e3 100644
--- a/packages/camera/camera_web/pubspec.yaml
+++ b/packages/camera/camera_web/pubspec.yaml
@@ -2,12 +2,7 @@
 description: A Flutter plugin for getting information about and controlling the camera on Web.
 repository: https://github.com/flutter/plugins/tree/master/packages/camera/camera_web
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
-version: 0.1.0+1
-
-# This plugin is under development and will be published 
-# when the first working web camera implementation is added.
-# TODO(bselwe): Remove when camera_web should be published.
-publish_to: none
+version: 0.2.0
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
@@ -27,6 +22,7 @@
     sdk: flutter
   flutter_web_plugins:
     sdk: flutter
+  stream_transform: ^2.0.0
 
 dev_dependencies:
   flutter_test: