Istiod serving outdated mesh config

Bug description
We recently updated some Istio configurations by mutating IstioOperator. After the mutation, we noticed some sidecars and ingress gateways are running with the latest config, and the rest are running with old config, and they periodically switch between old and new config. Later we found this is caused by the 2 istiod pods are serving different configs, one is up-to-date, and one is stale, istioctl proxy-status shows those running with stale configs are all controlled by one particular istiod pod, and those running with new configs are all controlled by another istiod pod.
Digging through the stale istiod pod, after IstioOperator was mutated, the file watcher did receive the latest configuration:
2020-11-20T01:02:19.159925Z	info	mesh configuration updated to: (*v1alpha1.MeshConfig)(0xc00217a000)(disable_mixer_http_reports:true proxy_listen_port:15001 connect_timeout:<seconds:10 > protocol_detection_timeout:<nanos:100000000 > ingress_class:"istio" ingress_service:"istio-ingressgateway" ingress_controller_mode:STRICT enable_tracing:true access_log_file:"/dev/stdout" access_log_format:"{\"downstream_remote_address\": \"%DOWNSTREAM_REMOTE_ADDRESS%\", \"host\": \"%REQ(:AUTHORITY)%\", \"latency\": \"%DURATION%s\", \"referer\": \"%REQ(REFERER)%\", \"remoteIp\": \"%DOWNSTREAM_REMOTE_ADDRESS%\", \"requestForwardedFor\": \"%REQ(X-FORWARDED-FOR)%\", \"requestID\": \"%REQ(X-REQUEST-ID)%\", \"requestMethod\": \"%REQ(:METHOD)%\", \"requestSize\": \"%BYTES_RECEIVED%\", \"requestUrl\": \"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%\", \"responseCodeDetails\": \"%RESPONSE_CODE_DETAILS%\", \"responseSize\": \"%BYTES_SENT%\", \"status\": \"%RESPONSE_CODE%\", \"upstreamAddr\": \"%UPSTREAM_HOST%\", \"userAgent\": \"%REQ(USER-AGENT)%\", \"x_datadog_trace_id\": \"%REQ(X-DATADOG-TRACE-ID)%\"}" access_log_encoding:JSON default_config:<config_path:"./etc/istio/proxy" binary_path:"/usr/local/bin/envoy" service_cluster:"istio-proxy" drain_duration:<seconds:45 > parent_shutdown_duration:<seconds:60 > discovery_address:"istiod.istio-system.svc:15012" proxy_admin_port:15000 stat_name_length:189 concurrency:2 tracing:<datadog:<address:"$(HOST_IP):8126" > > envoy_access_log_service:<> envoy_metrics_service:<> proxy_metadata:<key:"DNS_AGENT" value:"" > status_port:15020 > outbound_traffic_policy:<mode:ALLOW_ANY > sds_uds_path:"unix:/etc/istio/proxy/SDS" enable_auto_mtls:<value:true > trust_domain:"paas-dev-us-west1.gke.us-west1.cruise-paas-dev-0e95.gcp.dev.secure.car" trust_domain_aliases:"cluster.local" default_service_export_to:"*" default_virtual_service_export_to:"*" default_destination_rule_export_to:"*" root_namespace:"istio-system" locality_lb_setting:<enabled:<value:true > > dns_refresh_rate:<seconds:5 > report_batch_max_entries:100 report_batch_max_time:<seconds:1 > thrift_config:<> enable_prometheus_merge:<> )

But listener.go showed an error message which should only appear for the old config, not the new one, indicating although the new config was received by config watcher, it was not propagated to listener.go:
2020-11-20T01:02:19.300085Z error error parsing provided json log format, default log format will be used: json: cannot unmarshal object into Go value of type string

We've seen this happen at least twice recently, but not able to stably reproduce.
The very simple workaround is to kill the stale istiod pod and launched a new one.
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[X] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Steps to reproduce the bug
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
istioctl version --remote
client version: 1.7.2
control plane version: 1.6.4-58f551e08f08addfd81783e1c2ed1eabeb836168
data plane version: 1.6.4 (51 proxies)

kubectl version --short
Client Version: v1.19.3
Server Version: v1.16.13-gke.401

How was Istio installed?
IstioOperator
Environment where the bug was observed (cloud vendor, OS, etc)
GKE

@ramaraochavali possibly the cache doesn't update if it fails?

I traced through the code and logs, and I'm now convinced the culprit is this debounce function.
https://github.com/istio/istio/blob/release-1.6.4-patch/pilot/pkg/proxy/envoy/v2/discovery.go#L289
In logs of a known malfunctioning istiod pod, the debounce function logging stopped right before the last update it received, afterward it never logged any more debounce execution log statement, and the meshconfig in memory just stayed stale:

This is observed in 1.6.4, however the function looks unchanged comparing to master, except for some global variables are turned to function parameters


Make CTS Nightly reporting correct result

Our CTS nightly run doesn't report correct result when the test is failed. We need to fix that issue.
Also, we will need to config the workflow yml file to be able to send us notification when there is regression, so we can have someone to fix it as soon as possible.

Closed by https://github.com/shader-slang/slang/pull/4219.


What's the recommended way to disable TLS 1.0 for envoy?

Issue Template
N/a
Title: One line description
What's the recommended way to disable TLS 1.0 for envoy?
Description:
It would be good to be able to disable specific versions of TLS that are supported by envoy - for example, 1.0, 1.1, so only 1.2 would be used in negotiations with clients. Is this currently doable as a configuration in envoy? It wasn't clear from the envoy documentation. If this requires code changes, I'm happy to do them but may need some help/guidance initially. I see some relevant code bits in envoy/source/common/ssl/context_config_impl.cc and can walk through the code path to see where a TLS version black/white list would fit in, but am putting this question out first so I don't end up doing something not required at all.
[optional Relevant Links:]
n/a
Bug Template
n/a
Title: One line description
n/a
Description:
n/a
Repro steps:
n/a
Admin and Stats Output:
n/a

It can be set in TlsParameters via the min and max protocol version: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/auth/cert.proto.html#envoy-api-msg-auth-tlsparameters.

Closing this for now.  I think this ties in with https://github.com/envoyproxy/envoy/issues/2607: having an example config that sets up TLS would probably answer questions like this.


16 color version identifier

It should be blue but it's just a bolded normal text,here are my settings:
set t_Co=16
colorscheme flattened_dark
hi link javaScriptNumber Number

The option "draw bold text in bright colors" set by default to be active in my terminal was what caused this.Kind of strange that this has only affected this color scheme maybe it's to do with the iterm2 palette.


[Amplitude] Tracking users' email

Description
Adding email as user property on Amplitude.

Risk

Deploy Plan

PMRW


Circle Packer 2.0

Added features:

Better CP
Rewritten hide chief delphi #9
Name Density (To hide Chief Delphi) #10
Better circle render
Name tags are on prioritized layer
Average based sizing system #11

![image](https://user-images.githubusercontent.com/78449263/200737955-6ee4702b-ae54-4473-9b14-c50d47498407.png)
![image](https://user-images.githubusercontent.com/78449263/200737967-395607f0-f64e-47ce-8c14-b127eb7c0521.png)


Buy Now NFTs (FORKING CHANGE)

Add support for selling an NFT at a fixed price instead of an auction style.
What's been done:

Move the logic of connecting/disconnecting NFT sales out of _connectAcceptNFTBid and _disconnectAcceptNFTBid in block_view.go into a helper function that can be used by _connectNFTBid and _disconnectNFTBid when an NFT is a buy now NFT.
Update _connectNFTBid and _disconnectNFTBid to automatically sell an NFT when a bid is submitted on an NFT that is a Buy Now NFT.
Prevent making an NFT a Buy Now NFT if the NFT has unlockable content.
Prevent putting an NFT on sale as a Buy Now NFT with a Purchase price of 0.
Add rosetta fields to UtxoOperation struct to support the Output to the coin that is generated by this transaction.
Create a utility function that gathers enough inputs to cover a certain amount of spend. This helps gather enough inputs for an NFT bid on a Buy Now NFT - similar to how we gather additional inputs for Creator Coin purchases.
Add some new Errors
Add test for Buy Now functionality.

So overall this looks pretty great. I love how the helper function consolidates the code and makes buy now super clean.
I just had one super annoying thought that I figured I'd voice. So, with this change it looks like you can do Buy Now or auction. But I'm wondering if want the protocol to be more flexible, and support bids below the Buy Now threshold even when an NFT has isBuyNow = true. Like for me, I might just want to set a really high buy now price in case a whale comes in, but then still entertain lower offers. This is how eBay does it as well.
I think to support this we'd need to have a BuyNowPriceNanos that's distinct from MinBidAmountNanos. We'd need to do some checks around that too. But I wonder if it's easier than it seems. For example, we could simply replace the IsBuyNow bool with BuyNowPriceNanos > 0 and I think everything would mooostly work?
Anyway, @lazynina let's discuss offline. If it's not too much work, it seems like the extra flexibility at the protocol layer could be nice, even if most frontends don't implement it. But it could also be not worth it since you can always just message someone to ask if they're willing to take a lower price, in which case they can switch it into auction mode and accept your bid.

So overall this looks pretty great. I love how the helper function consolidates the code and makes buy now super clean.
I just had one super annoying thought that I figured I'd voice. So, with this change it looks like you can do Buy Now or auction. But I'm wondering if want the protocol to be more flexible, and support bids below the Buy Now threshold even when an NFT has isBuyNow = true. Like for me, I might just want to set a really high buy now price in case a whale comes in, but then still entertain lower offers. This is how eBay does it as well.
I think to support this we'd need to have a BuyNowPriceNanos that's distinct from MinBidAmountNanos. We'd need to do some checks around that too. But I wonder if it's easier than it seems. For example, we could simply replace the IsBuyNow bool with BuyNowPriceNanos > 0 and I think everything would mooostly work?
Anyway, @lazynina let's discuss offline. If it's not too much work, it seems like the extra flexibility at the protocol layer could be nice, even if most frontends don't implement it. But it could also be not worth it since you can always just message someone to ask if they're willing to take a lower price, in which case they can switch it into auction mode and accept your bid.

I think you wanted to allow Buy Nows to have a 0 Buy Now price (but require users to pay at least 1 nanos). So I think if this key exists, then we will treat it as a buy now even if the value is 0. If there is no key, then it is not a buy now.

replaced with #166


Support different authentication types for a REST API

So, I have used amplify api add and now have GraphQL and REST API in my project, but the auth for my REST API is using Cognito. How can I change that? I would like to use API Key authentication for my REST API and keep using Cognito for the rest. I can not find any reference in the doc and by running amplify auth add again I get the message:

Auth has already been added to this project. To update run amplify update auth.

If this is currently not supported going through some amplify-cli command or by editing some CloudFormation template, then it can be a candidate for a feature request.

I have been able to configure usage of API Key Auth on specific endpoints, though still exploring how to configure UsagePlans.
You can add overrides.js by using amplify override api command

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.override = void 0;
function override(resources) {
    // 	Put /myAPI endpoint behind API_KEY
    resources.restApi.body.securityDefinitions['api_key'] = {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header",
    };
    resources.restApi.body.paths['/youApiPath']['x-amazon-apigateway-any-method']['security'] = [{ 'api_key': [] }];
}
exports.override = override;

Hope this helps


Add compatibility with PHPUnit 10.*

Hi,
I've tried upgrading my project to PHPUnit 10.* today and ran into errors like this when running my tests:
1) Sworp\Tests\MyTest:testSomething
Error: Interface "PHPUnit\Runner\BeforeFirstTestHook" not found

/Users/michalmajer/Projects/Sworp/hub/vendor/zenstruck/browser/src/Browser/Test/BrowserExtension.php:16

Looks like this is due to the BrowserExtension using these hooks:
use PHPUnit\Runner\AfterLastTestHook;
use PHPUnit\Runner\AfterTestErrorHook;
use PHPUnit\Runner\AfterTestFailureHook;
use PHPUnit\Runner\AfterTestHook;
use PHPUnit\Runner\BeforeFirstTestHook;
use PHPUnit\Runner\BeforeTestHook;

which have been deprecated in PHPUnit 10 and replaced by a new event system. https://thephp.cc/presentations/phpunit-10-the-new-event-subsystem

Yep, I think we'll need a phpunit 10 specific subscriber.

https://localheinz.com/articles/2023/02/14/extending-phpunit-with-its-new-event-system/

I was thinking symfony bridge was not compatible yet?

Correct, my plan was to wait until the bridge supports phpunit 10 before digging into this.
The bridge isn't required by browser so if someone wants to create a PR in the meantime, that'd be cool.

Looks like bridge is compatible now https://github.com/symfony/symfony/commit/8b2fe339811d1a21d5b52a41251eb8857629bd5a

Hi Kevin. Is there anything in the pipeline for PHPUnit 10 support yet? Thanks.

I'm still waiting for symfony/phpunit-bridge to support phpunit 10. I wouldn't use phpunit w/o the bridge so I don't have much motivation to implement yet.

This can be closed as supported (with the linked PR).

indeed, thanks!


Support Azure AD authentication: Example

This PR seeks to make an authentication example using Azure AD.
See https://github.com/redwoodjs/redwood/issues/1310

Example
This is a example output with custom role custom-redwood-role.
userMetaData
{
  "accountIdentifier":"50d73f03-65e8-4e3c-9a5c-XXXXXXXXX",
  "homeAccountIdentifier":"NTBkNzNmMDMtNjVlOC00ZT[...]ZGM3ZjVjNGMz.YmMxNGFkOWY[...]",
<EMAIL_ADDRESS>  "name":"Johan Eliasson",
  "idToken":{
     "aud":"99562e9b-6eb2-455d-a5e6-605a95e559d9",
     "iss":"https://login.microsoftonline.com/bc14ad9f-53e6-442a-a062-[...]/v2.0",
     "iat":1604864792,
     "nbf":1604864792,
     "exp":1604868692,
     "aio":"AVQAq/8RAAAALy[...]L6R/04ujul9XwfC6TpFEqKS3TF7f02/x4gIkueZ8j/aeUH[...]CtxeYk4/wunpaDDy7+hJPfE=",
     "name":"Johan Eliasson",
     "nonce":"30c2156f-de2b-44ce-9874-6187922c2fab",
     "oid":"50d73f03-65e8-4e3c-9a5c-XXXXXXXXX",
<EMAIL_ADDRESS>     "rh":"0.ASEAn60UvOZTKk[...]peZgWpXlWdkhAFw.",
     "roles":[
        "custom-redwood-role"
     ],
     "sub":"F2WxHHIiWEw658Or1JyGA3OvTgxUjk6bdLRX1x4kVs0",
     "tid":"bc14ad9f-53e6-442a-a062-[...]",
     "uti":"wQ55wDW4vEisdnW3nE0CAA",
     "ver":"2.0"
  },
  "idTokenClaims":{
     "aud":"99562e9b-6eb2-455d-a5e6-605a95e559d9",
     "iss":"https://login.microsoftonline.com/bc14ad9f-53e6-442a-a062-[...]/v2.0",
     "iat":1604864792,
     "nbf":1604864792,
     "exp":1604868692,
     "aio":"AVQAq/8RAAAALy[...]L6R/04ujul9XwfC6TpFEqKS3TF7f02/x4gIkueZ8j/aeUH[...]CtxeYk4/wunpaDDy7+hJPfE=",
     "name":"Johan Eliasson",
     "nonce":"30c2156f-de2b-44ce-9874-6187922c2fab",
     "oid":"50d73f03-65e8-4e3c-9a5c-XXXXXXXXX",
<EMAIL_ADDRESS>     "rh":"0.ASEAn60UvOZTKk[...]peZgWpXlWdkhAFw.",
     "roles":[
        "custom-redwood-role"
     ],
     "sub":"F2WxHHIiWEw658Or1JyGA3OvTgxUj[...]",
     "tid":"bc14ad9f-53e6-442a-a062-[...]",
     "uti":"wQ55wDW4vEisdnW3nE0CAA",
     "ver":"2.0"
  },
  "environment":"https://login.microsoftonline.com/bc14ad9f-53e6-442a-a062-[...]/v2.0"
}

currentUser
{
<EMAIL_ADDRESS>   "aud":"99562e9b-6eb2-455d-a5e6-605a95e559d9",
   "iss":"https://login.microsoftonline.com/bc14ad9f-53e6-442a-a062-[...]/v2.0",
   "iat":1604864792,
   "nbf":1604864792,
   "exp":1604868692,
   "aio":"AVQAq/8RAAAALy[...]L6R/04ujul9XwfC6TpFEqKS3TF7f02/x4gIkueZ8j/aeUH[...]CtxeYk4/wunpaDDy7+hJPfE=",
   "name":"Johan Eliasson",
   "nonce":"30c2156f-de2b-44ce-9874-6187922c2fab",
   "oid":"50d73f03-65e8-4e3c-9a5c-XXXXXXXXX",
<EMAIL_ADDRESS>   "rh":"0.ASEAn60UvOZTKk[...]peZgWpXlWdkhAFw.",
   "roles":[
     "custom-redwood-role"
   ],
   "sub":"F2WxHHIiWEw658Or1JyGA3OvTgxUjk6bdLRX1x4kVs0",
   "tid":"bc14ad9f-53e6-442a-a062-[...]",
   "uti":"wQ55wDW4vEisdnW3nE0CAA",
   "ver":"2.0"
}

@thedavidprice I'm getting the "Something went wrong" page when I try to view the deploy preview for this PR...

@cannikin The developer console tells us that azureActiveDirectory is not supported, and I'm pretty sure this is because https://github.com/redwoodjs/redwood/pull/1311 is not merged 😊

You guys want me to mark this PR as a draft while the above PR is being reviewed?

Netlify Env Vars
Confirming that @jeliasson and I have added the necessary Env Vars to this Netlify Site.

@dthyresson @Tobbe
At your convenience, could you please give this PR a review. I suggest a local test (i.e. clone jeliasson/redwood and checkout feat/auth-azure-ad), as we might want some more env's added as below to have the preview working.
Envs can be found in .env.defaults and you can use test user<EMAIL_ADDRESS>with password FdoG5YZesW2Daj. The response should obtain the custom role plaground-auth-custom-role-1.
Feel free to DM on Discord for any discussion or issues!
@thedavidprice
Is it possible to add env's to a specific PR build? If so, it would be great if we could throw these in. (no stress!)
AZURE_ACTIVE_DIRECTORY_REDIRECT_URI="https://deploy-preview-6--redwood-playground-auth.netlify.app"
AZURE_ACTIVE_DIRECTORY_LOGOUT_REDIRECT_URI="https://deploy-preview-6--redwood-playground-auth.netlify.app"

We might want to replace these once this PR is merged. (production link)
AZURE_ACTIVE_DIRECTORY_REDIRECT_URI="https://redwood-playground-auth.netlify.app"
AZURE_ACTIVE_DIRECTORY_LOGOUT_REDIRECT_URI="https://redwood-playground-auth.netlify.app"

Thanks everyone! 🎉

@dthyresson @Tobbe
I have bumped to version 0.22.1. Can this be merged?
Also, I can throw in a SUPABASE_JWT_SECRET as per upgrade notes. Do we have this? 😀

@dthyresson @Tobbe
I have bumped to version 0.22.1. Can this be merged?
Also, I can throw in a SUPABASE_JWT_SECRET as per upgrade notes. Do we have this? 😀

Also, I can throw in a SUPABASE_JWT_SECRET as per upgrade notes. Do we have this?

@jeliasson Actually, @Tobbe and I just added and merged that into 22.1 here: https://github.com/redwoodjs/redwoodjs.com/pull/504
Thanks for thinking of this!

Also, I can throw in a SUPABASE_JWT_SECRET as per upgrade notes. Do we have this?

@jeliasson Actually, @Tobbe and I just added and merged that into 22.1 here: https://github.com/redwoodjs/redwoodjs.com/pull/504
Thanks for thinking of this!

@dthyresson So we don't need to throw in SUPABASE_JWT_SECRET into this repo? If not, I think we can have this PR merged. 🎉

@dthyresson So we don't need to throw in SUPABASE_JWT_SECRET into this repo? If not, I think we can have this PR merged. 🎉

@dthyresson So we don't need to throw in SUPABASE_JWT_SECRET into this repo? If not, I think we can have this PR merged. 🎉

My apologies @jeliasson I thought you mean adding the var to the docs, but now I see that
https://github.com/redwoodjs/playground-auth/blob/0217b31eda887251b3f3f808bf6d0457e47c7ed2/web/src/components/Supabase/Supabase.js#L7
needs to be updated.
Perhaps this is best made a separate PR:

add the SUPABASE_JWT_SECRET
add this to Netlify deploy environment

@dthyresson So we don't need to throw in SUPABASE_JWT_SECRET into this repo? If not, I think we can have this PR merged. 🎉

My apologies @jeliasson I thought you mean adding the var to the docs, but now I see that
https://github.com/redwoodjs/playground-auth/blob/0217b31eda887251b3f3f808bf6d0457e47c7ed2/web/src/components/Supabase/Supabase.js#L7
needs to be updated.
Perhaps this is best made a separate PR:

add the SUPABASE_JWT_SECRET
add this to Netlify deploy environment

Actually, we have
https://github.com/redwoodjs/playground-auth/issues/11
to handle that, so I'll close and merge!

Actually, we have
https://github.com/redwoodjs/playground-auth/issues/11
to handle that, so I'll close and merge!


Release new version for Ruby 2.0.0 support

Now that Ruby 2.0 is out, it'd be great to have a new release since the current version doesn't work out of the box.

It's been 6 months and still no new release and this is still broken.. :(


accounts-db: fix 8G+ memory spike during hash calculation

We were accidentally doing several thousands 4MB allocations - even during incremental hash - which added up to a 8G+ memory spikes over ~2s every ~30s.
Fix by using Vec::new() in the identity function. Empirically 98%+ reduces join arrays with less than 128 elements, and only the last few reduces join large vecs. Because realloc does exponential growth we don't see pathological reallocation but reduces do at most one realloc (and often 0 because of exp growth).

Before:

After:

In the before picture I ran the profiler for 28s. Notice the yellow box showing a 8G+ spike over 113ms (ouch) calling Vec::with_capacity from AccountsHasher::de_dup_accounts, followed by the 2nd largest allocation which accounts for 1.86% of allocations in the accountsdb thread pool.
In the after picture I ran the profiler for 38s. See how AccountsHasher::de_dup_accounts has disappeared from the profile, and the allocation that was 1.86% is now 69%. (In the second picture the scan allocation is larger in absolute terms because I ran the profiler for 10s longer.)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 81.6%. Comparing base (186befe) to head (9ee43dc).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1308   +/-   ##
=======================================
  Coverage    81.6%    81.6%
=======================================
  Files         867      867
  Lines      368767   368771    +4
=======================================
+ Hits       300967   300977   +10
+ Misses      67800    67794    -6


Memory Leak: Runtime Effect + Runtime generated Images

I'm currently trying to implement a runtime effect which uses runtime generated images as shader inputs.
I tried to replicate the RuntimeEffectScene example:
https://github.com/HumbleUI/Skija/blob/master/examples/scenes/src/RuntimeEffectScene.java
But instead of a static texture image from a file, I wanted to use runtime created images drawn to offscreen surfaces.
My implementation "works" (The output looks like what I expected), but it also introduced a memory leak issue.
I tried to track down the leaking object, but so far with no avail. Maybe my approach is simply wrong...
If somebody could help me figure this out, that would be awesome.
Some minimalist code to showcase my current implementation:
public class Main
{
    public static void main(String [] args) throws Exception
    {
        GLFWErrorCallback.createPrint(System.out).set();
        if (!GLFW.glfwInit())
        {
            throw new IllegalStateException("Error: Unable to initialize GLFW");
        }
        loop();
    }

    private static void loop()
    {
        //Create window (Setup GLFW and SKIJA)
        GameWindow window = new GameWindow();

        //Create main offscreen target
        OffscreenTarget mainTarget = new OffscreenTarget(window.getContext(), 640, 480, 0);

        //Create debug effect
        RuntimeEffect effect = RuntimeEffect.makeForShader(
                "uniform shader in_texture0;\n" +
                "uniform shader in_mask0;\n" +
                "\n" +
                "float4 main(float2 p)\n" +
                "{\n" +
                "    float4 texel = in_texture0.eval(p);\n" +
                "    float4 texelMask = in_mask0.eval(p);\n" +
                "    float4 result = float4(texel.r * texelMask.r, texel.g * texelMask.r, texel.b * texelMask.r, texel.a * texelMask.r);\n" +
                "\treturn result;\n" +
                "}"
        );

        while (window.isAlive())
        {
            GLFW.glfwMakeContextCurrent(window.getWindowHandle());
            GLFW.glfwPollEvents();

            //Create debug offscreen targets
            OffscreenTarget debugTarget1 = new OffscreenTarget(window.getContext(), 400, 400, 0);
            OffscreenTarget debugTarget2 = new OffscreenTarget(window.getContext(), 400, 400, 0);

            //Draw gradient to debug target 1
            debugTarget1.clear(Color.makeARGB(0, 0, 0, 0));
            Shader gradientShader = Shader.makeLinearGradient(new Point(0, 0), new Point(400, 400), new int[] { 0xFF247ba0, 0xFFf3ffbd });
            Paint pt1 = new Paint();
            pt1.setShader(gradientShader);
            debugTarget1.getSurface().getCanvas().drawRect(new Rect(0, 0, 400, 400), pt1);
            gradientShader.close();

            //Draw black and white mask to debug target 2
            debugTarget2.clear(Color.makeARGB(255, 0, 0, 0));
            Paint pt2 = new Paint();
            pt2.setAntiAlias(true);
            pt2.setColor(Color.makeARGB(255, 255, 255, 255));
            debugTarget2.getSurface().getCanvas().drawOval(new Rect(0, 0, 400, 400), pt2);

            //Create runtime shader from debug offscreen target 1 + 2 images
            Shader[] debugShaderChildShaders = new Shader[2];
            Image debugImage1 = debugTarget1.getSurface().makeImageSnapshot();
            debugShaderChildShaders[0] = debugImage1.makeShader();
            Image debugImage2 = debugTarget2.getSurface().makeImageSnapshot();
            debugShaderChildShaders[1] = debugImage2.makeShader();

            //Create runtime shader of debug effect
            Shader runtimeShader = effect.makeShader(null, debugShaderChildShaders, null);

            //Clear main offscreen target
            mainTarget.clear(Color.makeARGB(255, 32, 32, 32));

            //Draw runtime debug shader to main target
            mainTarget.getSurface().getCanvas().save();
            Paint pt3 = new Paint();
            pt3.setShader(runtimeShader);
            mainTarget.getSurface().getCanvas().translate(120, 40);
            mainTarget.getSurface().getCanvas().drawRect(new Rect(0, 0, 400, 400), pt3);
            mainTarget.getSurface().getCanvas().restore();

            //Try to close all runtime objects -->
            runtimeShader.close();
            debugShaderChildShaders[0].close();
            debugShaderChildShaders[1].close();
            debugImage1.close();
            debugImage2.close();
            debugTarget1.dispose();
            debugTarget2.dispose();
            //...Still loosing about 200mb of ram + vram per second

            //Draw main offscreen target to window
            window.draw(mainTarget);

            window.getContext().flush();
            GLFW.glfwSwapBuffers(window.getWindowHandle());
        }

        effect.close();
        mainTarget.dispose();
        window.closeWindow();
    }
}

The OffscreenTarget.dispose() method just calls Surface.close() on the encapsulated Skija Surface.

Could try also adding pt3.close(); and/or System.gc(); to the loop.


what does spring Data for arangodb do with JSONArray

My Environment

ArangoDB Version: 3.3.12
Storage Engine:
Deployment Mode:
Deployment Strategy:
Configuration:
Infrastructure:
Operating System:
Used Package:

Component, Query & Data
Affected feature:

AQL query (if applicable):
AQL explain (if applicable):

Dataset:

Replication Factor & Number of Shards (Cluster only):

Steps to reproduce

Problem:
Spring Data integration for ArangoDB.
I use JSONArray in entity, but repository.findOne  or findAll  Query execution failed. the error info is "Caused by: org.springframework.data.mapping.model.MappingException: No mapping metadata found for type java.lang.Object". JSONArray  Data types not supported?
in arangodb,collection  sample data:

How to deal with? in  Spring Data
Expected result:

Please open a new issue in https://github.com/arangodb/spring-data/issues if the problem is still relevant and consider upgrading to the latest ArangoDB version:
https://www.arangodb.com/2020/08/arangodb-3-7-a-big-step-forward-for-multi-model


fixed assignment of namespaces. Use abbreviation, not speaker id

The module for importing EXMARaLDA data used the speaker id by mistake, not the speaker's human-readable and human-configurable abbreviation. This was now fixed.

bors r+


Update README.md

Add --remote-branch guide to README.md
#195
Checklist

[x] Run npm run test
[x] Run npm run lint

@tranquochuy645
Ah, you're right about the README!
Sorry I forgot about that. Thanks for taking care of the documentation update.
Could you also add the new options to the "Command Line Options" section?

@tranquochuy645
Looks good!
Merging this. Thanks again for your contribution.


Remove strictComparison option

From a user point of view its the same as tolerance: 0. AFAIK it never really have been used by anyone and I can not imagine how can it be useful in real world scenarios. The same can probably be done for looks-same.

/cc @SwinX @j0tunn @sipayRT

PR? :)

Of course. Just wanted to know if anyone have an objections first.

:+1:


In Windows doom-load-envvars-file failed load env because of search regexp.

In Windows 7,  doom-load-envvars-file failed load vars from env file. I found that the problem is the following function return nil in env file.
(re-search-forward "\0\n *\\([^#= \n]*\\)=" nil t)

which can be fixed by delete "\0". But I dont know what's the difference of "\n" and "\0\n".

\0\n is what Doom's envvar file uses to delimit envvars and is needed for it to parse them correctly. Windows is likely decoding the file "incorrectly". Windows uses \r\n for newline and linux uses \n.
Could you try deleting this line from doom-load-envvars-file and see if that fixes your issue?

I open the env file(fundamental-mode) which created by doom. And return to the begining, eval this form (re-search-forward "\0\n *\\([^#= \n]*\\)=" nil t). It's result is nil.

The previous works ok.
(defun doom-load-envvars-file (file &optional noerror)
  "Read and set envvars from FILE.
 If NOERROR is non-nil, don't throw an error if the file doesn't exist or is
 unreadable. Returns the names of envvars that were changed."
  (if (not (file-readable-p file))
      (unless noerror
        (signal 'file-error (list "Couldn't read envvar file" file)))
    (let (envvars environment)
      (with-temp-buffer
        (save-excursion
          (insert "\n")
          (insert-file-contents file))
        (while (re-search-forward "\n *\\([^#= \n]*\\)=" nil t)
          (push (match-string 1) envvars)
          (push (buffer-substring
                 (match-beginning 1)
                 (1- (or (save-excursion
                           (when (re-search-forward "^\\([^= ]+\\)=" nil t)
                             (line-beginning-position)))
                         (point-max))))
                environment)))
      (when environment
        (setq process-environment
              (append (nreverse environment) process-environment)
              exec-path
              (if (member "PATH" envvars)
                  (append (split-string (getenv "PATH") path-separator t)
                          (list exec-directory))
                exec-path)
              shell-file-name
              (if (member "SHELL" envvars)
                  (or (getenv "SHELL") shell-file-name)
                shell-file-name))
        envvars))))

Could you try deleting this line from doom-load-envvars-file and see if that fixes your issue?

I tested as your tip, but it still fails. I edebug this fun, found this because when (re-search-forward "\0\n *\\([^#= \n]*\\)=" nil t) return nil.

As of 763d0b6 this should be resolved. Please update Doom with doom upgrade and regenerate your envvar file with doom env. If it throws an error you may need to delete ~/.emacs.d/.local/env by hand then try again. Thanks for letting me know!


Fix tests for reset/restore dbs function moved to helper module

Changes Unknown when pulling f8fef029450bad4a0d1a5d78c3d493c1d5e48fa7 on fix-tests into ** on master**.


Doesn't seem to work on IOB bank website anymore

The username & password field on this login form (and other forms on this banking site) block copy & paste:
https://www.iobnet.co.in/ibanking/login.do
Earlier this extension solves this issue, but not anymore. Tried in edge & firefox to same result.
Thanks for a great extension, it has helped me in other dumb websites.

Hmm. I can't reproduce that. It doesn't appear to block copy or paste for me. I don't even need to activate the extension.

@aaronraimist Would you please check again? It definitely doesn't work for me as of today. I am using it on Firefox.

@navinthomas did you activate the extension on that website? You need to go to the website, click on the icon for the extension, and then click save. It still works fine for me.

@aaronraimist Yes, I did activate the extension on that website prior to testing. The extension is definitely activated on the page. I cannot paste anything into the Login ID and Password fields. Can you tell me which browser you are using?

Right now, I was able to paste in the fields by doing Shift + Right Click on the fields and then clicking Paste. The normal Ctrl + V shortcut does not paste anything. So, the site is blocking the paste shortcut too? Have you seen this before?

I am using Firefox 95.0.2

I am also using Firefox 95.0.2
@aaronraimist Are you able to paste directly into those fields using Ctrl + V (Windows/Linux shortcut for paste)?

I'm on a Mac so I'm using Command + V but yes.


how to disable arrow from changing months?

Possible to just use the swiping gesture to change months? And hide and disable click function for the arrows?

You could hide the header using setTopbarVisible and display your own

How to hide the left and right arrow in calendar view ?

Please use this. Set visibility gone when you need to disable the month change. Do it inside MaterialCalendarView. The path is (library\src\main\java\com\prolificinteractive\materialcalendarview)
buttonFuture.setVisibility(GONE);
buttonPast.setVisibility(GONE);


[dartls] Change init_options to booleans

This PR is meant to change the default type in the init_options for the dart language server because it seems like passing stringified booleans doesn't affect the behavior. This can be demonstrated if you include a small callback for dart/textDocument/publishClosingLabels.
local dart_callbacks = {}
dart_callbacks['dart/textDocument/publishClosingLabels'] = function(_, _, result, _, _) print(result) end

nvim_lsp.dartls.setup({
  on_attach = dart_attach;
  init_options = {
    onlyAnalyzeProjectsWithOpenFiles = "true";
    suggestFromUnimportedLibraries = "false";
    closingLabels = "true";
  };
  callbacks = dart_callbacks;
})

Using this setup call, a table of the result will never arrive because the language server will fall back to its default value. If you change all the init_options to booleans you will see the notification on startup of the language server.
I also turned off the init_options for additional features by default because there aren't callbacks defined to handle them as far as I could tell.
dartls init_options for reference
Thank you for taking the time to review :smile:

@PatOConnor43 Thanks for your PR. Could you rebase?

Sorry for the delay @h-michael ! I think this is ready for you again. Thanks.


Adding Tags To Readme.md

Covers issue https://github.com/Headstorm/shukra/issues/45
Added tags (or badges) for the license, stars, forks, and issues.

@zromick Great job on the tags! I was also wondering if we could add tags for build status (pass/fail), coverage and so on. If it doesn't make sense to add these additional tags now, let me know and I will create issues to add these tags at a later point in time.

@zromick Could you resolve the conflicts so I can merge this PR?


chore(paeckchen-cli): releases 0.3.0

Coverage remained the same at 100.0% when pulling 4903e9c4f2ca15ab8d679988c77c84bb4e3c46a8 on cli/release-0.3.0 into ee8bcb6db6118dcbc20c8ebc706a1a3d6fe3ab53 on master.


[FSDE-936] DevOpsGCR GitCredentials

The CI pipeline run successfully in https://jenkinsprod.corp.intranet:8443/job/UX-CHI/job/Playpen/job/ChiGCR/job/ChiGCR/job/PR-5/1/. :white_check_mark:


Output Some Metadata in SDK Release Pipeline

PowerApps needs to get the released packages from sdk release pipeline, such as the link to the release package. So it asks sdk release pipeline to store this kind of information to a metadata file in pipeline artifact.
cc: @josefree @lirenhe @zzvswxy @chunyu3

@josefree @dw511214992 what is the link information that we want here? Do we want to the link to the public package manager? Or the link to the package in the devops pipeline? Also I'm still interested in knowing what we plan to do with this link? What do we expect the user of the PowerApp to do with this link?

My suggestion for this first release is to provide a download link for the package from the DevOps artifacts. In a future release after we get some feedback about what is more interesting to the consumer of the app we can try to update that to be a download link from the public package manager or perhaps a set of instructions on how to consume that package for each language. It really depends on what the goal is for those using the app.
If we do want the public package manager pipeline we will need to do unique work in each language release pipeline to upload those and as mentioned offline some of those links like to maven will not be live until the package manager finishes indexing the package.

I think we need the link to public package manager, because ther is a page in powerapps which tells customer where the released sdk is. You don't need to worry about the delayed access to maven, because we will check whether the link is valid before we show it to customer.

Not sure how long the "download link for the package from the DevOps artifacts" can be available. Before they are available, we can present message "generating...details"

"download link for the package from the DevOps artifacts" can be available.

For our release builds we retain them for 2 yrs.

We are currently not providing links to the packages in the release planner. If and when we decide to do that, we can figure out how to expose the necessary metadata.


make make clean more idempotent

Summary
make nuke was failing due to .stylelintcache being non exist. I think it's a good practice to have a fail safe approach here.
Release Note
NONE

I actually submitted the same change as https://github.com/mattermost/mattermost-webapp/pull/11257 a bit earlier. Since it already has one reviewer, I'm going to take you submitting identical changes as a second approval for it 😛


Enable openjdk11 & openjdk11-openj9 builds in AdoptOpenJDK

OpenJDK 11 builds with both hotspot and openJ9 are not enabled in AdoptOpenJDK build farm.

I see OpenJDK 11 releases with Hotspot and OpenJ9 on https://adoptopenjdk.net so I guess this is fixed?


ASP.NET Core Module Configuration Reference

Document how to configure the ASP.NET Core Module using web.config. It will read similar to the HttpPlatformHandler Configuration Reference.
It should also explicitly call out the app_offline behavior.
This article will live under the Publishing and Deployment node in the top level TOC.

@danroth27 Thoughts?

Sounds good to me.

Spoke to @Rick-Anderson offline. He will be working on this

It should also explicitly call out the app_offline behavior.

@shirhatti can you send me the text for that?

If you place a file with the name app_offline.htm in the root of a web application directory, ANCM will shut-down the application and stop processing any new incoming requests for that application.  ANCM will also then respond to all requests for dynamic pages in the application by sending back the content of the app_offline.htm file (for example: you might want to have a “site under construction” or “down for maintenance” message).
Once you remove the app_offline.htm file, the next request into the application will cause ANCM to load the application again, and life will continue along as normal.


Pass data to server as JSON string [feature request]

jQuery's $.axax() method serializes data before passing to the server (using https://api.jquery.com/jQuery.param/) to a format like that:
{
	draw: 1,
	columns[0][data]: "data0",
	columns[0][searchable]: true,
	columns[0][orderable]: true,
	columns[0][search][regex]: false,
	columns[1][data]: "data1",
	columns[1][searchable]: true,
	columns[1][orderable]: true,
	columns[1][search][regex]: false,
	start: 0,
	length: 100,
	search[regex]: false
}

Processing this data on the server is not that easy because of the loss of structure. There might be ways to write an inverse of the serialization function, however, transforming the arguments into JSON representation using JSON.stringify might be a better way in certain circumstances (a JSON module is probably already used server-side).
var extendedAjax = $.extend( baseAjax, ajax );
extendedAjax.data = {args: JSON.stringify(extendedAjax.data)};
oSettings.jqXHR = $.ajax( extendedAjax );

{
  "args": {
    "draw": 1,
    "columns": [
      {
        "data": "data0",
        "searchable": true,
        "orderable": true,
        "search": {
          "value": "",
          "regex": false
        }
      },
      {
        "data": "data1",
        "searchable": true,
        "orderable": true,
        "search": {
          "value": "",
          "regex": false
        }
      },
    ],
    "order": [],
    "start": 0,
    "length": 100,
    "search": {
      "value": "",
      "regex": false
    }
  }
}

I think there's no callback for applying stringify, particularly preXhr fires too early for this operation.
In my opinion it would be nice to have the possibility to convert the arguments to JSON as an option and I am looking forward to read your statement.
Thank you so much for DataTables and the short response times, by the way ;-)

action:remove
data[10][created_date]:2016-03-08T00:00:00
data[10][pass]:ssss
data[10][srno]:10
data[10][status]:active
data[10][userId]:skp
data[10][username]:sunil
how i will get these data on my action class in struts2


net.infotexture.dita-bootstrap doesn't enable html5-bootstrap

In my old (dita 3.6) note, I wrote (a year ago) to myself that if  net.infotexture.dita-bootstrap is installed, the html5-bootstrap type will be recognised. the same dita project stopped working with my DITA-OT version 3.7.0
$ dita --install net.infotexture.dita-bootstrap
Error: Plug-in net.infotexture.dita-bootstrap already installed: /opt/dita-ot-3.7/plugins/net.infotexture.dita-bootstrap
dita --project config/website.yaml -o out/website
Error: [DOTA001F][FATAL] "html5-bootstrap" is not a recognized transformation type. Supported transformation types are dita, eclipsehelp, html5, htmlhelp, markdown, markdown_gitbook, markdown_github, pdf, pdf2, xhtml.

appreciate any hint!

@weiwu-zhang The latest version of the plug-in should work fine with DITA-OT 3.7.
The error messages above suggest you may have upgraded your old DITA-OT 3.6 installation to 3.7, so the previous plug-in installation was still present when you tried to install it again.
I suggest you remove the plug-in, and then re-install it to ensure it is properly integrated in your updated toolkit environment:
$ dita uninstall net.infotexture.dita-bootstrap
$ dita install net.infotexture.dita-bootstrap

If your website.yaml project file specifies the Bootstrap transformation with transtype: 'html5-bootstrap', the output should be generated as expected.

thank you, the said procedure solved the problem.


Get native android BluetoothDevice instance

I am using a native android library (written in Java) and in order to use it, I need to pass it an instance of BluetoothDevice. Is there a way to get the native representation of the device on Android?

@matthew798 i just added what you need:

nativeDevice in scan / connect events/callbacks
getDevice method to get native device using UUID


Some cleanup

Hi,
I really like the broker API. During my work I found some small things you might like to merge.

The RawParameters are sometimes of type json.RawMessage and sometimes of type map[string]interface{}. I changed them all to json.RawMessge
I added two default Errors I frequently need. Would like to know what you thing about my suggestions
Changed state type from string to LastOperationState

Cheers
joek

Will close pull request as I figured out, I forgot to run tests... MIght open a new one as soon as I sorted everything out.


If using (React + Redux) and firebase as main backend database, how would i host the project?

I want to use firebase as my main backend database storage, i also want to use Redux with React. I am just confused as to how i would host my project. I can't host on firebase i think since this will be a node app. I'm a Node newbie , so pardon me for being ignorant but if i use redux in client side only will npm compile to static js files where i can use firebase hosting?

You can build a static website using React and Redux which can be hosted on Firebase. You don't need Node to run it, you just need Node to build it. Once the code is built though, you can deploy it to Firebase Hosting and everything will work smoothly.


refactor: use screen component to get rid of extra margins on iOS

This PR resolves []
Description
Refactors the Galleries For You screen to use the <Screen /> component and to use the animated headers for consistency.
Also uses the ListEmptyComponent for the empty state.
Margin that we wanted to get rid of:

Screenshots
Android

Placeholder
Screen video
empty state

iOS

Placeholder
Screen video
empty state

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

refactor: use screen component galleries for you - gkartalis

Need help with something? Have a look at our docs, or get in touch with us.

Is it all fixed? I guess I saw something like this in the Fair screen too.

Is it all fixed? I guess I saw something like this in the Fair screen too.

This fixes this specific screen, the padding was coming from a marginBottom in the flex container of the screen. Will check the Fair screen as well


Cannot disable emmet vendor prefixes

It seems it is not possible to disable vendor prefixes for emmet or css autocomplete
type "transi" + tab
and you'll get:
-webkit-transition: prop time;
-o-transition: prop time;
transition: prop time;
This feature should be optional, some people may delegate the vendor-prefixes to postcss for example.

We currently do not expose the emmet preferences in Code's settings.

I hope every plugin can be configured separately.

Emmet preferences are now supported in the settings file. I assume disabling emmet vendor prefixes can be done through a setting?

@udarkness, in next version VS Code you can use all documented Emmet preferences.

Great :smile:, no more unwanted lines, thank you

@udarkness or @egamma, close this issue, please.

closing as requested, thanks for the reminder @mrmlnc.


Wrap Images in div with class

I want to wrap uploaded images in a div that is assigned custom class so I can have more control over styling. I have looked at this, but the solution isn't quite there. I have looked throug the Prose Mirror forums without much luck too. Thanks.

I think you can use this.
You'll have to create a Schema for the wrapper div and if you want to add classes, do it in
toDOM: node => ["div", {class: 'image-wrapper'}, 0],


tagging FreeType

Hi,
would it be possible to tag FreeType?
On OSX this is still failing with the current tag!
Thanks a lot!
Simon

Okay I've tried this, but Pkg.publish() always fails. I've upgraded Julia to 0.5-dev, but then Pkg.publish() gives me
ERROR: There are no METADATA changes to publish

but Pkg.tag("FreeType") returns
fatal: Tag 'v1.0.1' existiert bereits

(German for tag already exists ...). I guess this is because I already created the Tag in 0.4. Unfortunately there doesn't seem to be an easy way to install Julia 0.4 on Ubuntu atm. Is it okay if I wait a few days?
Also if you like, you can try to create the PR in METADATA.jl manually :)


[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/dwds-6.0.0",
[   +6 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.9"
[   +2 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "fake_async",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.1.0-nullsafety",
[   +2 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "file",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.0.0-nullsafety.1",
[   +1 ms]     |       "packageUri": "lib/",
[   +3 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[   +3 ms]     |     {
[   +1 ms]     |       "name": "file_testing",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/file_testing-2.1.0",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.1"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "fixnum",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/fixnum-0.10.11",
[   +2 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.1"
[   +1 ms]     |     },
[  +10 ms]     |     {
[   +1 ms]     |       "name": "flutter_template_images",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_template_images-1.0.1",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.1"
[   +1 ms]     |     },
[        ]     |     {
[        ]     |       "name": "glob",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/glob-1.2.0",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.1"
[   +4 ms]     |     },
[   +1 ms]     |     {
[   +4 ms]     |       "name": "html",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/html-0.14.0+3",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.3"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "http",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.2",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.4"
[   +1 ms]     |     },
[   +1 ms]     |     {
[   +2 ms]     |       "name": "http_multi_server",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.2.0",
[   +1 ms]     |       "packageUri": "lib/",
[   +4 ms]     |       "languageVersion": "2.1"
[   +2 ms]     |     },
[   +2 ms]     |     {
[        ]     |       "name": "http_parser",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4",
[   +2 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.3"
[   +3 ms]     |     },
[   +4 ms]     |     {
[   +4 ms]     |       "name": "intl",
[   +3 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.16.1",
[   +7 ms]     |       "packageUri": "lib/",
[  +10 ms]     |       "languageVersion": "2.5"
[   +3 ms]     |     },
[   +1 ms]     |     {
[   +2 ms]     |       "name": "io",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/io-0.3.4",
[   +2 ms]     |       "packageUri": "lib/",
[   +3 ms]     |       "languageVersion": "2.0"
[   +2 ms]     |     },
[   +2 ms]     |     {
[   +1 ms]     |       "name": "js",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.3-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "json_annotation",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/json_annotation-3.0.1",
[   +2 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.6"
[   +1 ms]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "json_rpc_2",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/json_rpc_2-2.2.1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.2"
[   +2 ms]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "logging",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/logging-0.11.4",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.0"
[        ]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "matcher",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10-nullsafety",
[   +2 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "meta",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0-nullsafety.2",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "mime",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/mime-0.9.7",
[        ]     |       "packageUri": "lib/",
[   +2 ms]     |       "languageVersion": "2.0"
[        ]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "mockito",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/mockito-4.1.1",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +1 ms]     |     {
[   +3 ms]     |       "name": "multicast_dns",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/multicast_dns-0.2.2",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.1"
[   +1 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "mustache_template",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/mustache_template-1.0.0+1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "native_stack_traces",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/native_stack_traces-0.3.7",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.8"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "node_interop",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/node_interop-1.1.1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +2 ms]     |     {
[   +1 ms]     |       "name": "node_io",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/node_io-1.1.1",
[   +2 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.2"
[   +1 ms]     |     },
[        ]     |     {
[        ]     |       "name": "node_preamble",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/node_preamble-1.4.12",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "1.24"
[   +1 ms]     |     },
[        ]     |     {
[        ]     |       "name": "package_config",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/package_config-1.9.3",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.7"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "path",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.0-nullsafety",
[        ]     |       "packageUri": "lib/",
[   +2 ms]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[   +3 ms]     |     {
[        ]     |       "name": "pedantic",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.10.0-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[        ]     |     {
[        ]     |       "name": "petitparser",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/petitparser-3.1.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.7"
[        ]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "platform",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.0-nullsafety.1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[        ]     |     {
[        ]     |       "name": "pool",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/pool-1.5.0-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[        ]     |     {
[   +2 ms]     |       "name": "process",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.0.0-nullsafety.1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "pub_semver",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/pub_semver-1.4.4",
[   +2 ms]     |       "packageUri": "lib/",
[   +2 ms]     |       "languageVersion": "2.0"
[   +2 ms]     |     },
[   +3 ms]     |     {
[   +4 ms]     |       "name": "pubspec_parse",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/pubspec_parse-0.1.5",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.2"
[   +1 ms]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "quiver",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/quiver-2.1.3",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +1 ms]     |     {
[   +2 ms]     |       "name": "shelf",
[   +3 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/shelf-0.7.5",
[   +4 ms]     |       "packageUri": "lib/",
[   +4 ms]     |       "languageVersion": "2.0"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "shelf_packages_handler",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_packages_handler-2.0.0",
[   +1 ms]     |       "packageUri": "lib/",
[   +2 ms]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "shelf_proxy",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_proxy-0.1.0+7",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +4 ms]     |     {
[   +3 ms]     |       "name": "shelf_static",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_static-0.2.8",
[   +4 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.0"
[        ]     |     },
[   +2 ms]     |     {
[   +1 ms]     |       "name": "shelf_web_socket",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_web_socket-0.2.3",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.0"
[        ]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "source_map_stack_trace",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/source_map_stack_trace-2.1.0-nullsafety.1",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.10"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "source_maps",
[   +4 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/source_maps-0.10.10-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[        ]     |     {
[        ]     |       "name": "source_span",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "sse",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/sse-3.5.0",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.2"
[        ]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "stack_trace",
[   +2 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0-nullsafety",
[   +2 ms]     |       "packageUri": "lib/",
[   +4 ms]     |       "languageVersion": "2.10"
[   +6 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "stream_channel",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0-nullsafety",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "stream_transform",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/stream_transform-1.2.0",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.6"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "string_scanner",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[   +4 ms]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[   +3 ms]     |     {
[   +1 ms]     |       "name": "sync_http",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/sync_http-0.2.0",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "term_glyph",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0-nullsafety",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "test",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/test-1.16.0-nullsafety.1",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[   +1 ms]     |     {
[   +2 ms]     |       "name": "test_api",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19-nullsafety",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[        ]     |     {
[        ]     |       "name": "test_core",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/test_core-0.3.12-nullsafety.1",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[        ]     |     },
[        ]     |     {
[   +3 ms]     |       "name": "typed_data",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0-nullsafety.2",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.10"
[   +1 ms]     |     },
[        ]     |     {
[   +2 ms]     |       "name": "usage",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/usage-3.4.2",
[   +2 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.2"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "uuid",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/uuid-2.2.0",
[        ]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.0"
[        ]     |     },
[   +1 ms]     |     {
[   +3 ms]     |       "name": "vm_service",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/vm_service-4.2.0",
[   +2 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.6"
[   +1 ms]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "vm_snapshot_analysis",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/vm_snapshot_analysis-0.5.4",
[   +1 ms]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.8"
[        ]     |     },
[   +1 ms]     |     {
[        ]     |       "name": "watcher",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/watcher-0.9.7+15",
[   +1 ms]     |       "packageUri": "lib/",
[   +2 ms]     |       "languageVersion": "2.2"
[   +1 ms]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "web_socket_channel",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/web_socket_channel-1.1.0",
[   +1 ms]     |       "packageUri": "lib/",
[   +4 ms]     |       "languageVersion": "2.0"
[   +2 ms]     |     },
[   +1 ms]     |     {
[   +5 ms]     |       "name": "webdriver",
[   +3 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/webdriver-2.1.2",
[   +1 ms]     |       "packageUri": "lib/",
[        ]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "webkit_inspection_protocol",
[   +5 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/webkit_inspection_protocol-0.7.3",
[   +4 ms]     |       "packageUri": "lib/",
[   +2 ms]     |       "languageVersion": "2.0"
[   +1 ms]     |     },
[   +3 ms]     |     {
[   +1 ms]     |       "name": "xml",
[        ]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/xml-4.4.1",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.7"
[        ]     |     },
[   +1 ms]     |     {
[   +1 ms]     |       "name": "yaml",
[   +1 ms]     |       "rootUri": "file:///E:/flutter/.pub-cache/hosted/pub.dartlang.org/yaml-2.2.1",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.4"
[        ]     |     },
[        ]     |     {
[   +1 ms]     |       "name": "flutter_tools",
[   +2 ms] MSG : Got dependencies!
[   +2 ms]     |       "rootUri": "../",
[        ]     |       "packageUri": "lib/",
[   +1 ms]     |       "languageVersion": "2.7"
[        ]     |     }
[        ]     |   ],
[   +1 ms]     |   "generated": "2020-09-21T08:33:09.089806Z",
[   +1 ms]     |   "generator": "pub",
[   +1 ms]     |   "generatorVersion": "2.10.0-110.3.beta"
[   +1 ms]     | }
[  +25 ms] Running "flutter pub get" in flutter_tools... (completed in 7.4s)
[  +65 ms] Updating assets
[+1332 ms] Manifest contained wildcard assets. Inserting missing file into build graph to force rerun. for more information see #56466.
[   +9 ms] Syncing files to device Chrome...
[  +20 ms] Found plugin firebase_analytics at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_analytics-6.0.0
[   +4 ms] Found plugin firebase_analytics_web at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_analytics_web-0.1.1
[   +4 ms] Found plugin firebase_core at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_core-0.5.0
[   +5 ms] Found plugin firebase_core_web at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_core_web-0.2.0
[  +20 ms] Found plugin url_launcher at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher-5.6.0
[   +3 ms] Found plugin url_launcher_linux at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_linux-0.0.1+1
[   +2 ms] Found plugin url_launcher_macos at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_macos-0.0.1+8
[   +3 ms] Found plugin url_launcher_web at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_web-0.1.3+2
[   +1 ms] Found plugin url_launcher_windows at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_windows-0.0.1+1
[  +29 ms] Found plugin firebase_analytics at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_analytics-6.0.0
[   +3 ms] Found plugin firebase_analytics_web at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_analytics_web-0.1.1
[   +2 ms] Found plugin firebase_core at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_core-0.5.0
[   +4 ms] Found plugin firebase_core_web at E:\flutter.pub-cache\hosted\pub.dartlang.org\firebase_core_web-0.2.0
[  +21 ms] Found plugin url_launcher at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher-5.6.0
[   +1 ms] Found plugin url_launcher_linux at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_linux-0.0.1+1
[   +2 ms] Found plugin url_launcher_macos at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_macos-0.0.1+8
[   +3 ms] Found plugin url_launcher_web at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_web-0.1.3+2
[   +2 ms] Found plugin url_launcher_windows at E:\flutter.pub-cache\hosted\pub.dartlang.org\url_launcher_windows-0.0.1+1
[  +19 ms] Generating E:\ProjectWork\CovidDashboard\MobileApp_Init\flutter_app\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +695 ms] <- reset
[  +16 ms] E:\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev E:\flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root E:\flutter\bin\cache\flutter_web_sdk/ --incremental --target=dartdevc --debugger-module-names
--experimental-emit-debug-metadata -Ddart.developer.causal_async_stacks=true --output-dill C:\Users\HP\AppData\Local\Temp\flutter_tools.be394cf2\flutter_tool.9d8ae923\app.dill --libraries-spec file:///E:/flutter/bin/cache/flutter_web_sdk/libraries.json --packages
.packages -Ddart.vm.profile=false -Ddart.vm.product=false --bytecode-options=source-positions,local-var-info,debugger-stops,instance-field-initializers,keep-unreachable-code,avoid-closure-call-instructions --enable-asserts --track-widget-creation --filesystem-root
C:\Users\HP\AppData\Local\Temp\flutter_tools.be394cf2\flutter_tools.43dede5 --filesystem-scheme org-dartlang-app --initialize-from-dill build\cache.dill.track.dill --platform file:///E:/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk.dill
[ +332 ms] <- compile org-dartlang-app:/web_entrypoint.dart
[+26871 ms] Syncing files to device Chrome... (completed in 28,072ms, longer than expected)
[   +2 ms] Synced 28.2MB.
[   +1 ms] <- accept
[   +3 ms] Caching compiled dill
[ +661 ms] [CHROME]:
[  +83 ms] [CHROME]:DevTools listening on ws://<IP_ADDRESS>:56426/devtools/browser/cb9aaec9-2b78-41fc-8f87-b29db7d0b123
[+18372 ms] Debug service listening on ws://<IP_ADDRESS>:56474/khVNXd5IMLU=
[ +533 ms] Debug service listening on ws://<IP_ADDRESS>:56474/khVNXd5IMLU=
[   +2 ms] Warning: Flutter's support for web development is not stable yet and hasn't
[        ] been thoroughly tested in production environments.
[   +1 ms] For more information see https://flutter.dev/web
[        ]   To hot restart changes while running, press "r" or "R".
[   +1 ms] For a more detailed help message, press "h". To quit, press "q".
[+1292 ms] XMLHttpRequest error.
[  +71 ms] XMLHttpRequest error.
[+12419 ms] Stopped debug service on ws://<IP_ADDRESS>:56474
[ +321 ms] Application finished.
[   +3 ms] "flutter run" took 78,304ms.
[ +264 ms] ensureAnalyticsSent: 252ms
[   +2 ms] Running shutdown hooks
[   +1 ms] Shutdown hook priority 4
[ +396 ms] Shutdown hooks complete
[   +1 ms] exiting with code 0

Hi @hemantsavkar
To better address the issue, can you please provide a minimal complete reproducible code sample, not production code
Thank you

Hi @hemantsavkar
To better address the issue, can you please provide a minimal complete reproducible code sample, not production code
Thank you

Hi Taha,
uploaded code at https://drive.google.com/file/d/1dzVZ_B-Vf1ZL2yP98rqohyijaEvdwZ5a/view?usp=sharing

Hi @hemantsavkar
I dug into what was wrong, turns out it was the code in the main function
Blank Page ONLY on iOS Web with the following code, it loads fine on Android Web, Desktop Web
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
      .then((value) {
    runApp(new MyApp());
  });
}

Page loads on iOS Web with the following code
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
  runApp(new MyApp());
}

This should be consistent across all platforms on the web

code sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
      .then((value) {
    runApp(new MyApp());
  });
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: Container(
          child: Text('Hello World'),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel beta, 1.22.0-12.1.pre, on Mac OS X 10.15.6 19G2021, locale
    en-GB)
    • Flutter version 1.22.0-12.1.pre at /Users/tahatesser/Code/flutter_beta
    • Framework revision 8b3760638a (7 days ago), 2020-09-15 17:47:13 -0700
    • Engine revision 4654fc6cf6
    • Dart version 2.10.0 (build 2.10.0-110.3.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.49.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (3 available)
    • iPhone 11 (mobile) • 9A8EFBFE-A806-4FF9-ACA5-F3F98D94979D • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)
    • Web Server (web)   • web-server                           • web-javascript
      • Flutter Tools
    • Chrome (web)       • chrome                               • web-javascript
      • Google Chrome 85.0.4183.102

• No issues found!

flutter doctor -v
[✓] Flutter (Channel master, 1.22.0-10.0.pre.317, on Mac OS X 10.15.6 19G2021
    x86_64, locale en-GB)
    • Flutter version 1.22.0-10.0.pre.317 at
      /Users/tahatesser/Code/flutter_master
    • Framework revision 10febea877 (2 hours ago), 2020-09-23 07:22:10 +0200
    • Engine revision 57ee3d4b32
    • Dart version 2.10.0 (build 2.10.0-156.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.49.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (4 available)
    • iPhone 11 (mobile) • 9A8EFBFE-A806-4FF9-ACA5-F3F98D94979D • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)
    • macOS (desktop)    • macos                                • darwin-x64
      • Mac OS X 10.15.6 19G2021 x86_64
    • Web Server (web)   • web-server                           • web-javascript
      • Flutter Tools
    • Chrome (web)       • chrome                               • web-javascript
      • Google Chrome 85.0.4183.102

• No issues found!

  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
  runApp(new MyApp());

Bingo !!!  This Was Ths Issue. For My Information, Is there any place on Flutter Documentation where we can see these kind of "Points To Be Noted" for App to Web Deployments ?
Updated The Code As Below And Now Page Loads .
import 'package:flutter/foundation.dart' show kIsWeb;
void main() {
WidgetsFlutterBinding.ensureInitialized();
if (kIsWeb) {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
runApp(new MyApp());
} else {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((
_) {
runApp(new MyApp());
});
}
}

Hi @hemantsavkar
We need to keep the issue due to inconsistencies from the code, it works on the android web, desktop web so we need to address why it doesn't on the iOS web only or update documentation for this

Hi @hemantsavkar
We need to keep the issue due to inconsistencies from the code, it works on the android web, desktop web so we need to address why it doesn't on the iOS web only or update documentation for this

Sure. NP.

Fix in master


#39 Upgraded jersey version to 2.27

This PR also resolves #33

Seems to work just fine, and even better than before. Also extensive tests are present. Great!


Fix checkstyle violations

Contains
Fixes all checkstyle error violations.
How to test
Run ./gradlew checkstyleMain or open the project in eclipse with the checkstyle plugin active (should also work with any other IDE).
Critical parts

I added an implementation for equals() in ChunkImpl because the hashCode() method is overwritten
I renamed some constants in /engine/src/main/java/org/terasology/rendering/openvrprovider/ControllerListener.java
I changed a lambda expression to an anonymous class instantiation as the checkstyle tool seems to get confused by variable declarations inside lambdas (in my defense, this was a big lambda function so in my opinion it's not really worse to use an anonymous class) -> /engine/src/main/java/org/terasology/logic/console/commandSystem/ConsoleCommand.java

Can one of the admins please verify this patch?

@Tropid Hi there and thanks! Looking good, noted two things I'm curious about :-)
@GooeyHub: ok to test

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Thanks! Merged and added to credits :-)

Have you noticed I also fixed the violations in the core project? I missed that at first and don't want to sneak in any unnoticed changed.

I looked over all the affected files just in case, but am not too worried exactly where they are. It's all in the same repository after all :-)


Bounty: New bounty

Reward Size in USD
100 USD
Bounty
Sign up to MINTYCODE
Acceptance Criteria
tweet
Go to Mintycode to approve the Bounty.

Hello @tvbot20 , I am from India and after sign up when I go to claim the bounty, and try to add my bank account, it says that India is not supported by stripe.
I have sign up on the MintyCode:

Please help me to resolve it.


[Patch 1.0.x] Disable flaky tests

#263 These tests are already refactored or disabled in dev.
We'll need a separate PR for 1.1.x.

https://github.com/aspnet/HttpSysServer/issues/344

@Eilon


Fix some minor things in the example code

Fixes a small mistake in the example code in the readme and also changes the algo to all-caps.

Thanks for catching these -- will merge now.


Better error messages

Terraform Version
0.12.29
Expected Behavior
The error message tells the user what resource errored
Actual Behavior
Error: This resource requires GitHub organization to be set on the provider.
Important Factoids
When working on a larger code base managing many repos, labels, branches, etc, I have no way to know what caused the failure without dropping into debugging (which is even more difficult when using TFC).

This error means the provider is not properly set somewhere


[716] consistency check

Context

Trello Ticket
At the moment, changes can be made on Dttp as well as on Register (even though we encourage the latter). To be warned when entities are changed on Dttp and not through register, we want to monitor entity updated/modified dates and be warned if something changes, and we don't know about it/it wasn't us

Changes proposed in this pull request

A model called ConsistencyCheck has been set up with trainee_id. This model holds the last updated of contact and placement_assignment on dttp.
Three jobs have been created:

CreateOrUpdateConsistencyCheckJob: Creates a new or updates a consistency check. Run whenever we do Create/Update actions on Dttp

RunConsistencyChecksJob: Runs all the consistency check jobs (see next job). Undecided how often/when this should be run

CheckConsistencyJob: This will pull modifiedon field from Dttp and cross reference it with our own ConsistencyCheck data. If inconsistent, we will get a slack notification.

Guidance to review

Make a Trainee object locally with dev dttp_id and placement_assignment_dttp_id data
Make a ConsistencyCheck object locally and populate it with some dummy data, but with the trainee aboves id
Run the job through Dttp::CheckConsistencyJob.perform_now(consistency_check.id)
NOTE: This will currently write into the apply slack channel. If you want to check the slack functionality, you can change the channel to (channel: "enter your slack uID here") to send a message to yourself.

 Consistency Check

 Consistency Check


missing processors

Congratulations on the great paper!
One question, do you have additional processor classes?
At the moment, the code reads:
`processors = {
      "cola": ColaProcessor,
      "mnli": MnliProcessor,
      "mrpc": MrpcProcessor,
  }`

and later:
`if task_name not in processors:
    raise ValueError("Task not found: %s" % (task_name))`

meaning that only 3 datasets can be used for training.
It would be useful for replication purposes to have all processors available. Let me know if this is possible or if I have misunderstood!

run_classifier.py just serves as an example, and should be relatively easy to extend to other tasks. See, for example, the original BERT codebase (https://github.com/google-research/bert/) for an XNLI preprocessor, or for a separate main for SQuAD Question Answering.


Wasm/Node.js

Hi,
I am the author of rawproto a library that does similar to what this does, in javascript, but outputs JSON. I was thinking I was going to try to make a better version of my lib in rust (and compile to wasm for node) and I came across this CLI tool that does an excellent job. I love the technique of "parse an Empty in protofish, and use the unknown fields to get raw info" method. Ingenious!
As an initial test, I took proto.rs, renamed it to lib.rs, and plopped it in a fresh project, and it builds fine (I appreciate how you keep all the formatting and CLI parsing in other files, very nicely organized) so I think it will work great with a little wasm-wrapping. Is there another preferred way I should do this (like should we break that file out into it's own rust lib, or is it ok for me to just plop the file into my thing?)  How would you like to be credited in README, if I get this working?

Hey David, welcome and thanks for the nice message.
I'm happy to collaborate, especially since we need to investigate how to work with protobuf JSON version as well. Not sure if that would happen here though because in raw proto you can't even reliably differentiate between a nested message, a string and raw bytes. How would you then do things like date formatting without schemas?
Anyways, what we can do for sure is to export parts of this project as a library. Then we can increase test coverage and overall stability of the lower level components. I'd not promote it as a library and not guarantee lots of stability, but we could work in that direction.  I have not done this before but it should work I guess.
If you want you can start a GitHUb action config that builds the library part for the wasm32-unknown-unknown target. Then you are sure no dependencies is pulled in that causes trouble with Wasm later on.

How would you like to be credited in README, if I get this working?

I think it would be nice if you direct people here who are looking for a debugging tool for human interaction. This is what this project is about. Probably many of your users need both, the programmable version with JSON and the manual version. Other than that, no requirements other than what the license requires.

I love the technique of "parse an Empty in protofish, and use the unknown fields to get raw info" method. Ingenious!

💐

I'm happy to collaborate, especially since we need to investigate how to work with protobuf JSON version as well.

Sweet!
Here is my work so far. If you ar einterested in experimenting there, I can add you as a maintainer.

Not sure if that would happen here though because in raw proto you can't even reliably differentiate between a nested message, a string and raw bytes. How would you then do things like date formatting without schemas?

I have a general policy of just using the lowest parsable common-denominator, and some things can be guessed, but you can tell it to force a type (like string could be buffer or string or sub-message, so it checks for utf-bounds for "auto" but you can force it. Also, I use a try/catch and try to parse it as a message, and that can sort of detect sub-messages.  I also generate a sort of dummy proto (which would probably be more robust in protofish, or at least using it to parse the proto SDL.) You can take that, edit it, make the field names/types more sensible (by manually analyzing the output from what you are reverse-engineering) and then run your binary back through the edited proto, and it will make more sense. It's not perfect, but it usually gets me pretty far, and allows building quick single-purpose javascript-based UI tools for playing around with the structure.
The awesome pbjs parser (and google's generated js code & parser, which is less awesome) actually chokes on some test binary which led me down this wasm path) but using the JSON you can do stuff programmatically with it (which I know is not a goal for this project, but that was my goal.) My rawproto is currently in kind of a flux state. I started documenting  planned features in README and adding them to CLI, but didn't quite implement protoc's partial parsing/raw type parsing. That's when I noticed it wasn't getting all the fields in my test-data, so I started looking for another way.
I tried wrapping libprotobuf (from google) and a few different rust libs. I found that rs-protobuf, and rust in general was much nicer to work with around wasm than libprotopbuf/cpp, but it also missed the problem-fields, like the js parsers. Your script does fine with it, as does protoc (which uses libprotobuf.)
I have working basic wasm usage of your try_parse_entries function. This is dev-console:

You can play with it here
Seems great so far! I imagine doing more (like building fancier JSON or whatever) could be done in js-space, with a nice big flat path: value (and then type-checks for int/bytes-array) as I am using, but I am not sure. Now that I am delighting in how easy it is to do rust wasm (after some initial learning pains) I kinda want to move as much as I can into rust-space, so I am open to doing it however seems sensible, but I'm much faster with js, so it's probly going to be my goto for prototyping ideas.
The next steps for me using this directly, I think, would be allowing a partial proto SDL (in decode_fields, instead of the Empty) so I can merge partial with raw (like protoc does) in the actual parsing stage. This might be useful for decode_raw, too, since often you know a part of the definition (made by hand, generated with rawproto, or whatever) and it's easier to read. Not sure what the putput would look like though, your fieldnum-indent is pretty rad for grepping, and it would be very hard to read with non-numbers in the keys.

Anyways, what we can do for sure is to export parts of this project as a library. Then we can increase test coverage and overall stability of the lower level components. I'd not promote it as a library and not guarantee lots of stability, but we could work in that direction.  I have not done this before but it should work I guess.

That sounds great! I'm kinda new to rust, so I'm not sure of best practices, but in other ecosystems, I usually pull out the library, publish that, then ref it in the consumers (so like my node-thing and decode_raw, the CLI.) Often keeping them all in a monorepo makes it easier to work with. Seems like in rust the CLI & lib can co-exist in a single crate, and it's fine, so maybe my usual isn't the best way. We could probly also include the wasm bindings in this, as well, so it's all one thing, or keep it totally separate, so you can use the lib without CLI/web, or CLI without web, etc. Maybe the library is already just protofish, though, since for the part I am using, it's basically just your clever empty proto + your path logicc + protofish. Before I found your tool, I was just thinking of a very similar jq-like feature in rawproto, but the language I imagined had array-indexes (I actually like your way better.)

I think it would be nice if you direct people here who are looking for a debugging tool for human interaction. This is what this project is about. Probably many of your users need both, the programmable version with JSON and the manual version.

Sounds good! Totally agreed. I feel like it's a perfect companion to finding raw paths, and just doing any sort of protobuf reverse-engineering, in general, so definitely all the same audience.

I tried compiling this project, just with cargo build --target wasm32-unknown-unknown, and it didn't seem to work, so it might need more to make WASI work right.

I'll need some time to catch up with all the points, but the deal is this: The whole project cannot be compied to wasm32-unknown-unknown because it needs environment interactions (read STDIN, write to STDOUT) which are not necessarily available to a Wasm sandbox. However, if you split a core library from the CLI, you can make sure this library compiles to wasm32-unknown-unknown.
I'm not sure if WASI is available in Node.js. Most likely it is not in browsers.

I'm not sure if WASI is available in Node.js. Most likely it is not in browsers.

It is, in both (output of cargo build --target wasm32-wasi will run at https://webassembly.sh/) wasi is pretty universal. I don't really want the wasi part, though, I just want the lib, as I am using it in my demo. I am just showing that you could allow people to try out decode_raw CLI, before installing, if they wanted to.

Seems like you are adding the filter path to the keys for some reason. This problem does not appear in the CLI version.
Here you see the same binary in both tools:

Seems like you are adding the filter path to the keys for some reason. This problem does not appear in the CLI version.
Here you see the same binary in both tools:

Yep, my point is it's in the way it works over wasm or my js. I double-checked my js and it seems good (it's not appending it or anything) so I will play around with it a bit more.

That issue is weird. In rust space, I log both the [64] and str version (that I pass through your parse_select_query) and they look correct, but it seems to be outputting a . query, with all the keys prepended with query. It's 206 paths, instead of 7 (from my test data in screenshot.)
js_path: ".<IP_ADDRESS>.1.6"
rawproto.js:195 path: [1, 5, 7, 37, 1, 6]

I noticed in your decode , you use hardcoded  &[] then after do this to filter the path:
 if !entry.path.starts_with(&config.select) {
    continue;
}

So, I think the bug comes form me not understanding the path param. I should be filtering the output of try_parse_entries. I will pull stuff out of decode to make a simplified entries (that only shows selected path.)

Yep, this worked:
#[wasm_bindgen]
pub fn parse_raw(bytes: &[u8], js_path: &str, js_config: &JsValue) -> JsValue {
    let config = js_config.into_serde().unwrap();
    let path = parse_select_query(js_path);
    let mut ret: Vec<Entry> = vec![];

    if let Some(entries) = try_parse_entries(bytes, &[], config) {
        for entry in entries {
            if !entry.path.starts_with(&path) {
                continue;
            }
            ret.push(entry);
        }
    }
    let js_ret = JsValue::from_serde(&ret).unwrap();
    js_ret
}

True, the path param in try_parse_entries is something different. Let me try to make this more clear.
In the meantime you can have a look at #2, which should make all parsing and filtering functionality available as a library.

In https://github.com/confio/decode_raw/pull/3 I removed the path argument from the public interface. This is only needed internally for the recursion part.

Looks great. I'd call this issue "resolved". It might make sense to expose the printing stuff in the lib too (for other people who want to use it from rust/wasm/etc) but that is maybe another issue. I am doing it in js-side, and it works pretty nice, and I can write & export a formatter function.
Additionally, I realized that by totally flattening to object on display, I was clobbering entries (because 2 object-items can't have same key) so I made a format that looks kinda like yours, in js that does nice indenting and stuff.
Any thoughts on packaging? This does what I need for raw-parsing, so I will probably remove a lot of stuff from rawproto and use it. I can publish our thin wasm-wrapper to npm as another name, if you like, and use it as a dep in rawproto, or we can just use rawproto as the module. I can also publish to wapm.

Additionally, I realized that by totally flattening to object on display, I was clobbering entries (because 2 object-items can't have same key)

I think this is a fundamental problem that is tricky to get right. Due to the way protobuf works, the paths that are created here are not unique. For a repeated top level field with field number 2, you have one entry with path .2 for each element. So this cannot correctly be represented in a map where keys need to be unique without adding an additional counter. decode_raw handles this by not trying to convert to a map and list multiple entries with the same path on multiple lines of the output.

decode_raw handles this by not trying to convert to a map and list multiple entries with the same path on multiple lines of the output.

Yep, I did same.

Seems like most of the original issue is covered. Let's follow up with more specific tickets.

Any thoughts on node-packaging? This does what I need for raw-parsing, so I will probably remove a lot of stuff from rawproto and use it. I can publish our thin wasm-wrapper to npm as another name, if you like, and use it as a dep in rawproto, or we can just use rawproto as the module. I can also publish to wapm.

At this point I don't have any plans to support Wasm/npm/browser use cases. Feel free to explore those areas.

Published here. Still need to do some testing. Eventually I may want to merge it with rawproto, but that will give it a place to live for now.