Crash on cluster initialization/healthcheck when ipv6 disabled

Crash already cleared w/ envoy-security@, they OKed this being filed as an issue
Title: Crash on cluster initialization/healthcheck when ipv6 disabled
Description

Current Behavior: Envoy crash on cluster initialization/healthcheck when probing a domain w/ an IPv6 address, if IPv6 is disabled at the OS level
Expected Behavior: Hopefully, Envoy could detect IPv6 unavailability and not attempt the IPv6 check, or should cleanly handle the failure and not crash.
OS: Reproduced in both RHEL-7.9.21 and RHEL-8.5.1
Envoy version: 1.20.1 (also reproduced with similar configs in 1.9.1)

[seanm514@286987d3 ~]$ /opt/vz/bin/envoy --version
/opt/vz/bin/envoy  version: ea23f47b27464794980c05ab290a3b73d801405e/1.20.1/Yahoo/RELEASE/BoringSSL

Repro steps

Stand up RHEL instance (tested against 7.9.21 and 8.5.1)
Install envoy (tested against 1.20.1 and reproduced with similar configs in 1.9.1)
Create test envoy configuration expressing a LOGICAL_DNS cluster pointing to an IPv6-enabled endpoint (yahoo.com in this case, but any domain expressing an IPv6 address should work)
Disable IPv6 via GRUB (along these lines)
Reboot instance
Reproduce crash by starting envoy with the test configuration

Detailed Steps
<!-- SSH to RHEL instance -->

[seanm514@286987d3 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.5 (Ootpa)

[seanm514@286987d3 ~]$ sudo yum install envoy-1.20.1
Last metadata expiration check: 0:00:06 ago on Wed 09 Feb 2022 06:05:39 PM UTC.
Dependencies resolved.
================================================================================
 Package             Arch   Version                    Repository          Size
================================================================================
Installing:
 envoy               x86_64 1.20.1-1.el8               media_edge-release  17 M
...
Installed:
  envoy-1.20.1-1.el8.x86_64
...

[seanm514@286987d3 ~]$ /opt/vz/bin/envoy --version
/opt/vz/bin/envoy  version: ea23f47b27464794980c05ab290a3b73d801405e/1.20.1/Yahoo/RELEASE/BoringSSL

[seanm514@286987d3 ~]$ cat /tmp/ipv6_test.yaml
static_resources:
  clusters:
  - name: service_test
    connect_timeout: 1s
    type: LOGICAL_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_test
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                protocol: TCP
                address: [yahoo.com](http://yahoo.com/)
                port_value: 443

[seanm514@286987d3 ~]$ ping -6 [yahoo.com](http://yahoo.com/)
PING [yahoo.com](http://yahoo.com/)([media-router-fp74.prod.media.vip.bf1.yahoo.com](http://media-router-fp74.prod.media.vip.bf1.yahoo.com/) (2001:4998:124:1507::f001)) 56 data bytes
64 bytes from [media-router-fp74.prod.media.vip.bf1.yahoo.com](http://media-router-fp74.prod.media.vip.bf1.yahoo.com/) (2001:4998:124:1507::f001): icmp_seq=1 ttl=44 time=90.3 ms

[seanm514@286987d3 ~]$ sudo vi /etc/default/grub

[seanm514@286987d3 ~]$ cat /etc/default/grub | grep GRUB_CMDLINE_LINUX
GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200n8 net.ifnames=0 ipv6.disable=1"

[seanm514@286987d3 ~]$ sudo /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-348.12.2.el8_5.x86_64
Found initrd image: /boot/initramfs-4.18.0-348.12.2.el8_5.x86_64.img
done

<!-- REBOOT INSTANCE -->
<!-- SSH back to RHEL instance -->

[seanm514@286987d3 ~]$ ping -6 [yahoo.com](http://yahoo.com/)
ping: socket: Address family not supported by protocol

[seanm514@286987d3 ~]$ /opt/vz/bin/envoy -c /tmp/ipv6_test.yaml
[2022-02-09 18:14:34.326][1469][info][main] [source/server/server.cc:368] initializing epoch 0 (base id=0, hot restart version=11.104)
...
<see logs below>
Aborted (core dumped)

Config
static_resources:
  clusters:
  - name: service_test
    connect_timeout: 1s
    type: LOGICAL_DNS
    lb_policy: ROUND_ROBIN
    load_assignment:
      cluster_name: service_test
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                protocol: TCP
                address: yahoo.com
                port_value: 443

Logs
[seanm514@286987d3 ~]$ /opt/vz/bin/envoy -c /tmp/ipv6_test.yaml
[2022-02-09 18:14:34.326][1469][info][main] [source/server/server.cc:368] initializing epoch 0 (base id=0, hot restart version=11.104)
...
[2022-02-09 18:14:34.332][1469][info][main] [source/server/server.cc:740] runtime: {}
[2022-02-09 18:14:34.332][1469][warning][main] [source/server/server.cc:585] No admin address given, so no admin HTTP server started.
[2022-02-09 18:14:34.332][1469][info][config] [source/server/configuration_impl.cc:127] loading tracing configuration
[2022-02-09 18:14:34.332][1469][info][config] [source/server/configuration_impl.cc:87] loading 0 static secret(s)
[2022-02-09 18:14:34.332][1469][info][config] [source/server/configuration_impl.cc:93] loading 1 cluster(s)
[2022-02-09 18:14:34.333][1469][info][config] [source/server/configuration_impl.cc:97] loading 0 listener(s)
[2022-02-09 18:14:34.333][1469][info][config] [source/server/configuration_impl.cc:109] loading stats configuration
[2022-02-09 18:14:34.333][1469][info][main] [source/server/server.cc:836] starting main dispatch loop
[2022-02-09 18:14:34.335][1469][critical][main] [source/exe/terminate_handler.cc:12] std::terminate called! (possible uncaught exception, see trace)
[2022-02-09 18:14:34.335][1469][critical][backtrace] [./source/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers):
[2022-02-09 18:14:34.335][1469][critical][backtrace] [./source/server/backtrace.h:92] Envoy version: ea23f47b27464794980c05ab290a3b73d801405e/1.20.1/Yahoo/RELEASE/BoringSSL
[2022-02-09 18:14:34.343][1469][critical][backtrace] [./source/server/backtrace.h:96] #0: Envoy::TerminateHandler::logOnTerminate()::$_0::operator()() [0x555fb19d491f]
[2022-02-09 18:14:34.350][1469][critical][backtrace] [./source/server/backtrace.h:98] #1: [0x555fb19d46a9]
[2022-02-09 18:14:34.356][1469][critical][backtrace] [./source/server/backtrace.h:96] #2: __cxxabiv1::__terminate() [0x555fb204ac7c]
[2022-02-09 18:14:34.356][1469][critical][backtrace] [./source/server/backtrace.h:104] Caught Aborted, suspect faulting address 0x5327000005bd
[2022-02-09 18:14:34.356][1469][critical][backtrace] [./source/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers):
[2022-02-09 18:14:34.356][1469][critical][backtrace] [./source/server/backtrace.h:92] Envoy version: ea23f47b27464794980c05ab290a3b73d801405e/1.20.1/Yahoo/RELEASE/BoringSSL
[2022-02-09 18:14:34.357][1469][critical][backtrace] [./source/server/backtrace.h:96] #0: __restore_rt [0x7f7911650c20]
[2022-02-09 18:14:34.363][1469][critical][backtrace] [./source/server/backtrace.h:98] #1: [0x555fb19d46a9]
[2022-02-09 18:14:34.363][1469][critical][backtrace] [./source/server/backtrace.h:96] #2: __cxxabiv1::__terminate() [0x555fb204ac7c]
Aborted (core dumped)

Call Stack
See Logs above
Mitigations
The crash can be avoided by:

Re-enabling IPv6 for the OS
Marking the cluster with dns_lookup_family: V4_ONLY

However, it is somewhat brittle to rely on manually configuring V4_ONLY for each new cluster we add, so this issue seemed worth reporting.

yeah, this was discussed on setec (thanks for responsible reporting!) and we agreed it should be fixed when someone has the cycles.


[Bug] Inline Links to headings are not functional

Hi Maxine,
enjoy your service to share docs with the small circle of my reading group.
Trying to make a content section with live-links to some headings in the text below doesn't seem to work.
Link Syntax [[Anuruddha - Sāriputta#With Anuruddha (2nd) / Sujato]]  -> this is rendered as faint blue text but not live.
Since all the external links are working beautifully I thought this might be more of a bug rather than a feature reqeust...
Thanks for looking into it.

OS: macOS 12.6.1
Browser Opera / Vivaldi / Safari
Version 1.01

Screenshot.pdf
Happy to send a link to the document if this is helpful.

Hi there! It would indeed be useful if you could share a Noteshare link with an example of the bug you're describing.
If I understand correctly, you're using the [[filename#header]] syntax to link to headings inside the same note?

The link is this one: https://noteshare.space/note/cla8rw2gp2960401pifc8bai0m#V34ZXhCDVBmfv8YE2jnRrgfo4MMDexWugj5EGqU/vNA
I'm attaching a screenshot of the links in source mode.
Source Mode of Links.pdf

To clarify: in this example, the note's name is "Anuruddha - Sāriputta", correct?
Note to self: can be fixed by preprocessing links to note-internal headers such that they are transformed to [[#header]] syntax.

Note's name: Exactly as you have it.


⚠ Bofrost.at has degraded performance

In 51746c2, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1596 ms

Resolved: Bofrost.at performance has improved in da7e412.


Missing "privacy change" link in share/publish modal before publishing

Going to the "SHARE" section of a new map without clicking on publish seems to be missing some links:

It says:

Get the link
Your map is private. Change your to share your map. Right now it's private.
Embed it
Your map is private. Change your to embed your map. Right now it's private.

so it seems that the "privacy settings" part is missing.
Change your privacy settings to share your map.

It should say:

Get the link
Your map is private. Change your privacy settings to share your map. Right now it's private.
Embed it
Your map is private. Change your privacy settings to embed your map. Right now it's private.

instead.
====
Edit: Also, there's a typo in the modal.

Click on Publish to start shareing your map on the web

it should be sharing instead.
====
In the code:
https://github.com/CartoDB/cartodb_rebranding/blob/8b3cbf857a6448b2ce4d1b7e700f8f60eec5081d/lib/assets/javascripts/cartodb/common/dialogs/publish/options/public_url.jst.ejs#L6
https://github.com/CartoDB/cartodb_rebranding/blob/8b3cbf857a6448b2ce4d1b7e700f8f60eec5081d/lib/assets/javascripts/cartodb/common/dialogs/publish/options/embed.jst.ejs#L6

Already fixed with the last modal


feat: provide RPC URL to SDK

Comes with #137

I suggest closing this PR, as changes in does not make sense, and providing RPC URLs to widgets is not relevant as widgets do not expose props for changing RPCs.

This PR will be closed due to inconsistencies. A new PR will be opened - #171


Lots of errors after upgrading to ember cli 1.13.12

Lots of errors with liquid fire and babel.
I think the problem is that the liquid fire addon is not able to find the babel transpiler. Not sure how to fix.
modules/liquid-fire/action.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/action.js: line 3, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/action.js: line 3, col 16, 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/action.js: line 4, col 34, 'default parameters' is only available in ES6 (use esnext option).
modules/liquid-fire/action.js: line 4, col 43, 'default parameters' is only available in ES6 (use esnext option).
modules/liquid-fire/action.js: line 21, col 40, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).

6 errors

modules/liquid-fire/animate.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 12, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 65, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 71, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 82, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 86, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 90, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/animate.js: line 94, col 1, 'export' is only available in ES6 (use esnext option).

9 errors

modules/liquid-fire/constrainables.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/constrainables.js: line 3, col 1, 'export' is only available in ES6 (use esnext option).

2 errors

modules/liquid-fire/constraint.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/constraint.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/constraint.js: line 7, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/constraint.js: line 7, col 16, 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/constraint.js: line 35, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/constraint.js: line 36, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/constraint.js: line 38, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/constraint.js: line 44, col 35, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).

8 errors

modules/liquid-fire/constraints.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 4, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 5, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 7, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 7, col 16, 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/constraints.js: line 31, col 41, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 35, col 35, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 45, col 23, Unexpected '`'.
modules/liquid-fire/constraints.js: line 46, col 5, Expected an identifier and instead saw '}'.
modules/liquid-fire/constraints.js: line 47, col 5, Expected ')' and instead saw 'if'.
modules/liquid-fire/constraints.js: line 47, col 25, Missing semicolon.
modules/liquid-fire/constraints.js: line 48, col 35, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 51, col 7, Expected an identifier and instead saw 'else'.
modules/liquid-fire/constraints.js: line 51, col 7, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/constraints.js: line 51, col 11, Missing semicolon.
modules/liquid-fire/constraints.js: line 56, col 29, Missing semicolon.
modules/liquid-fire/constraints.js: line 63, col 24, Missing semicolon.
modules/liquid-fire/constraints.js: line 72, col 26, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 74, col 23, Unexpected '`'.
modules/liquid-fire/constraints.js: line 75, col 9, Expected an identifier and instead saw '}'.
modules/liquid-fire/constraints.js: line 76, col 7, Expected ')' and instead saw '}'.
modules/liquid-fire/constraints.js: line 76, col 8, Missing semicolon.
modules/liquid-fire/constraints.js: line 76, col 8, Expected an identifier and instead saw ')'.
modules/liquid-fire/constraints.js: line 76, col 8, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/constraints.js: line 79, col 19, Unexpected '`'.
modules/liquid-fire/constraints.js: line 80, col 5, Expected an identifier and instead saw '}'.
modules/liquid-fire/constraints.js: line 81, col 5, Expected ')' and instead saw 'return'.
modules/liquid-fire/constraints.js: line 81, col 11, Missing semicolon.
modules/liquid-fire/constraints.js: line 81, col 12, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/constraints.js: line 84, col 20, Missing semicolon.
modules/liquid-fire/constraints.js: line 90, col 26, Missing semicolon.
modules/liquid-fire/constraints.js: line 100, col 21, 'value' used out of scope.
modules/liquid-fire/constraints.js: line 100, col 27, Missing semicolon.
modules/liquid-fire/constraints.js: line 101, col 31, 'value' used out of scope.
modules/liquid-fire/constraints.js: line 104, col 16, 'i' is already defined.
modules/liquid-fire/constraints.js: line 117, col 50, 'value' used out of scope.
modules/liquid-fire/constraints.js: line 122, col 17, 'matched' used out of scope.
modules/liquid-fire/constraints.js: line 122, col 26, 'context' used out of scope.
modules/liquid-fire/constraints.js: line 122, col 43, 'value' used out of scope.
modules/liquid-fire/constraints.js: line 122, col 49, Missing semicolon.
modules/liquid-fire/constraints.js: line 123, col 25, 'context' used out of scope.
modules/liquid-fire/constraints.js: line 123, col 50, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 125, col 49, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/constraints.js: line 128, col 23, Unexpected '`'.
modules/liquid-fire/constraints.js: line 129, col 9, Expected an identifier and instead saw '}'.
modules/liquid-fire/constraints.js: line 130, col 7, Expected ')' and instead saw '}'.
modules/liquid-fire/constraints.js: line 130, col 8, Missing semicolon.
modules/liquid-fire/constraints.js: line 130, col 8, Expected an identifier and instead saw ')'.
modules/liquid-fire/constraints.js: line 130, col 8, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/constraints.js: line 131, col 6, Expected an identifier and instead saw ')'.
modules/liquid-fire/constraints.js: line 131, col 6, Too many errors. (54% scanned).

52 errors

modules/liquid-fire/dsl.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 4, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 6, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 6, col 16, 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/dsl.js: line 91, col 22, 'spread/rest operator' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 95, col 26, 'spread/rest operator' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 99, col 32, 'spread/rest operator' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 101, col 31, 'spread/rest operator' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 102, col 35, 'spread/rest operator' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 114, col 12, 'spread/rest operator' is only available in ES6 (use esnext option).
modules/liquid-fire/dsl.js: line 118, col 14, 'spread/rest operator' is only available in ES6 (use esnext option).

13 errors

modules/liquid-fire/ember-internals.js: line 6, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 23, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 29, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 33, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 42, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 58, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 60, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 64, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 83, col 16, 'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 83, col 24, 'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 83, col 32, 'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 86, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 93, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 110, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 116, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 119, col 31, 'computed property names' is only available in ES6 (use esnext option).
modules/liquid-fire/ember-internals.js: line 122, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 126, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/ember-internals.js: line 132, col 5, 'concise methods' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).

19 errors

modules/liquid-fire/growable.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/growable.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/growable.js: line 5, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/growable.js: line 17, col 14, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).

4 errors

modules/liquid-fire/index.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/index.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/index.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/index.js: line 4, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/index.js: line 5, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/index.js: line 6, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/index.js: line 14, col 1, 'export' is only available in ES6 (use esnext option).

7 errors

modules/liquid-fire/internal-rules.js: line 1, col 1, 'export' is only available in ES6 (use esnext option).

1 error

modules/liquid-fire/modal.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/modal.js: line 5, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/modal.js: line 21, col 49, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).

3 errors

modules/liquid-fire/modals.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/modals.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/modals.js: line 4, col 1, 'export' is only available in ES6 (use esnext option).

3 errors

modules/liquid-fire/mutation-observer.js: line 20, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/mutation-observer.js: line 24, col 1, 'export' is only available in ES6 (use esnext option).

2 errors

modules/liquid-fire/promise.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/promise.js: line 3, col 1, 'export' is only available in ES6 (use esnext option).

2 errors

modules/liquid-fire/router-dsl-ext.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).

1 error

modules/liquid-fire/rule.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/rule.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/rule.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/rule.js: line 5, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/rule.js: line 5, col 16, 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/rule.js: line 19, col 25, Unexpected '`'.
modules/liquid-fire/rule.js: line 20, col 7, Expected an identifier and instead saw '}'.
modules/liquid-fire/rule.js: line 21, col 7, Expected ')' and instead saw 'this'.
modules/liquid-fire/rule.js: line 21, col 17, Missing semicolon.
modules/liquid-fire/rule.js: line 21, col 18, Expected an identifier and instead saw '='.
modules/liquid-fire/rule.js: line 21, col 18, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/rule.js: line 21, col 19, Missing semicolon.
modules/liquid-fire/rule.js: line 21, col 20, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/rule.js: line 29, col 26, Missing semicolon.
modules/liquid-fire/rule.js: line 31, col 23, Unexpected '`'.
modules/liquid-fire/rule.js: line 32, col 5, Expected an identifier and instead saw '}'.
modules/liquid-fire/rule.js: line 33, col 5, Expected ')' and instead saw 'this'.
modules/liquid-fire/rule.js: line 34, col 5, Unreachable 'if' after 'throw'.
modules/liquid-fire/rule.js: line 37, col 34, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/rule.js: line 42, col 11, Missing semicolon.
modules/liquid-fire/rule.js: line 46, col 47, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/rule.js: line 12, col 14, Unmatched '{'.
modules/liquid-fire/rule.js: line 51, col undefined, Unrecoverable syntax error. (100% scanned).

24 errors

modules/liquid-fire/running-transition.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/running-transition.js: line 3, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/running-transition.js: line 3, col 16, 'class' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/running-transition.js: line 16, col 58, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/running-transition.js: line 21, col 17, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/running-transition.js: line 16, col 23, Did you mean to return a conditional instead of an assignment?
modules/liquid-fire/running-transition.js: line 30, col 47, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/running-transition.js: line 36, col 60, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/running-transition.js: line 50, col 37, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).

9 errors

modules/liquid-fire/tabbable.js: line 13, col 1, 'import' is only available in ES6 (use esnext option).

1 error

modules/liquid-fire/transition-map.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 4, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 5, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 6, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 32, col 21, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 41, col 66, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 43, col 23, 'arrow function syntax (=>)' is only available in ES6 (use esnext option).
modules/liquid-fire/transition-map.js: line 41, col 34, Did you mean to return a conditional instead of an assignment?
modules/liquid-fire/transition-map.js: line 130, col 1, 'export' is only available in ES6 (use esnext option).

11 errors

modules/liquid-fire/velocity-ext.js: line 7, col 1, 'import' is only available in ES6 (use esnext option).

1 error

modules/liquid-fire/version-warnings.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/version-warnings.js: line 11, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/version-warnings.js: line 14, col 16, Unexpected '`'.
modules/liquid-fire/version-warnings.js: line 15, col 3, Expected an identifier and instead saw '}'.
modules/liquid-fire/version-warnings.js: line 17, col 3, Expected ')' and instead saw 'if'.
modules/liquid-fire/version-warnings.js: line 17, col 25, Missing semicolon.
modules/liquid-fire/version-warnings.js: line 19, col 5, Expected an identifier and instead saw 'else'.
modules/liquid-fire/version-warnings.js: line 19, col 5, Expected an assignment or function call and instead saw an expression.
modules/liquid-fire/version-warnings.js: line 19, col 9, Missing semicolon.
modules/liquid-fire/version-warnings.js: line 11, col 31, Unmatched '{'.
modules/liquid-fire/version-warnings.js: line 26, col undefined, Unrecoverable syntax error. (100% scanned).

12 errors

modules/liquid-fire/components/liquid-measured.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-measured.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-measured.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-measured.js: line 5, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-measured.js: line 6, col 3, 'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
modules/liquid-fire/components/liquid-measured.js: line 58, col 1, 'export' is only available in ES6 (use esnext option).

6 errors

modules/liquid-fire/components/liquid-spacer.js: line 1, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-spacer.js: line 2, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-spacer.js: line 3, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-spacer.js: line 4, col 1, 'import' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-spacer.js: line 6, col 1, 'export' is only available in ES6 (use esnext option).
modules/liquid-fire/components/liquid-spacer.js: line 7, col 3, 'object short notation' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).

6 errors

Ah the problem was that the dependencies that came with ember init were different than what liquid fire was asking for.
"ember-cli-babel": "^5.0.0",
"ember-cli-htmlbars": "0.7.6",

vs
"ember-cli-babel": "^5.1.5",
"ember-cli-htmlbars": "^1.0.1",

A second NPM install fixed the issue.
Closing this issue but would be nicer if lockstep versioning that @wycats promised was a little more in sync.
@stefanpenner this another one of the dependency management and ember init wrinkles that likely throws some users off.
A more polished UX around dependency management is going to need to become a priority at some point, IMHO.


chore: release main

:robot: I have created a release beep boop
prisma-model-types: 0.1.4
0.1.4 (2023-05-31)
Bug Fixes

model-types: Prisma client pkg import, fix ModelNames constant and type (83e7db3)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/BradenM/prisma-utils/releases/tag/prisma-model-types-v0.1.4 :sunflower:


Added sf::Texture tests

Title.

Remove texture implementation code since we can merge #2276 instead which is essentially identical.


Left icon with drawable added to textInput.

I'm going to merge this in but not release a new version just yet because I'm going to work on the library right now. To use this version in the meantime, you can change the version number by the commit hash in your build file.


ExpanderContentPadding value is being ignored

Describe the bug
Trying to use <Thickness x:Key="ExpanderContentPadding">0</Thickness> in my App resources, but the values I'm using are being ignored.
Desktop (please complete the following information):

Version 11.0.0-rc1.1

Additional context
I can see in the Expander control, this property is set with StaticResource, should this be DynamicResource? I'm able to set other properties like ControlCornerRadius and ExpanderContentDownBorderThickness just fine.

The Expander template is designed so the Padding property of the control itself is used for the content area. This means just set the Padding property and it should work.
I'll think about this some more. You might be correct this should be changeable as a light-weight resource. This isn't the only property to consider though.


Add a license

Please add a license to explain what can and cannot be done with the code.

Thank you @MichaelNZ85!
I've added the missing MIT license.


Add export/import API

Fixes #210. Exports the minimum amount of data for a single tree version to be able to reconstruct an identical tree:
type ExportNode struct {
	Key     []byte
	Value   []byte
	Version int64
	Height  int8
}

It may be possible to drop Height, but I couldn't come up with an algorithm, and an additional byte per node seems acceptable. Relies on tree traversal, thus performance is likely suboptimal.
The iterator pattern here is slightly different from that used by tm-db, and is based on Google's Go iterators. I'd be happy to change this if necessary.
I will be running a few export/import cycles of complete Cosmos Hub databases for benchmarking and testing, will post results before merging.
Spec: https://github.com/tendermint/iavl/blob/erik/export-import/docs/tree/export_import.md

Below are benchmarks of an export/import of cosmoshub-3 at height 870068, obtained from here:
http://quicksync.chainlayer.io/cosmos/cosmoshub-3.20200221.0105.tar.lz4
Benchmarks were taken on a 2017 iMac with SSD, having flushed disk caches via purge. Data is exported from LevelDB-backed IAVL trees into memory, and then reimported from memory into new LevelDB IAVL trees on disk. There is no (de)serialization to disk of exported data, but this overhead is considered negligible.
Exporting cosmoshub-3 database at version 870068

acc          : 67131 nodes (33566 leaves) in 2.236s with size 3 MB
distribution : 66509 nodes (33255 leaves) in 4.537s with size 3 MB
evidence     : 0 nodes
god          : 0 nodes
main         : 1 nodes (1 leaves) in 0s with size 0 MB
mint         : 1 nodes (1 leaves) in 0s with size 0 MB
params       : 59 nodes (30 leaves) in 0s with size 0 MB
slashing     : 1128139 nodes (564070 leaves) in 29.299s with size 41 MB
staking      : 44573 nodes (22287 leaves) in 1.842s with size 3 MB
supply       : 1 nodes (1 leaves) in 0s with size 0 MB
upgrade      : 0 nodes

Exported 11 stores with 1306414 nodes (653211 leaves) in 37.914s with total size 52 MB

Importing into new LevelDB stores

acc         : 67131 nodes (33566 leaves) in 352ms
distribution: 66509 nodes (33255 leaves) in 328ms
main        : 1 nodes (1 leaves) in 25ms
mint        : 1 nodes (1 leaves) in 25ms
params      : 59 nodes (30 leaves) in 25ms
slashing    : 1128139 nodes (564070 leaves) in 11.79s
staking     : 44573 nodes (22287 leaves) in 290ms
supply      : 1 nodes (1 leaves) in 28ms

Imported 11 stores with 1306414 nodes (653211 leaves) in 12.863s

The amount of data appears miniscule, bearing in mind that this is from a 45 GB data dump. Can someone please confirm these numbers?
If this is the order of magnitude data we are dealing with, then this naïve approach is more than sufficient for an initial state sync implementation.
With warm disk caches, the export duration is roughly halved:
Exporting cosmoshub-3 database at version 870068

acc          : 67131 nodes (33566 leaves) in 671ms with size 3 MB
distribution : 66509 nodes (33255 leaves) in 753ms with size 3 MB
evidence     : 0 nodes
god          : 0 nodes
main         : 1 nodes (1 leaves) in 0s with size 0 MB
mint         : 1 nodes (1 leaves) in 0s with size 0 MB
params       : 59 nodes (30 leaves) in 0s with size 0 MB
slashing     : 1128139 nodes (564070 leaves) in 16.447s with size 41 MB
staking      : 44573 nodes (22287 leaves) in 446ms with size 3 MB
supply       : 1 nodes (1 leaves) in 0s with size 0 MB
upgrade      : 0 nodes

Exported 11 stores with 1306414 nodes (653211 leaves) in 18.317s with total size 52 MB

CC @milosevic

@AdityaSripal We need to make sure a version that is being exported will not be pruned until after the export completes. What do you think would be the best way to do this?

Hmm if this is being used for state-sync then it should be only using snapshot versions which never get pruned by application. However IAVL has no idea which versions will never get pruned and which may get pruned at later time.
Probably the best way to handle this is to have some state (maybe a map int64=>bool) on the mutable tree that lets you know which version(s) is currently being exported. If anyone tries to delete during this time, we check this state and return error. Once exporting is complete, we reset this state so that future delete calls on that version will succeed

Probably the best way to handle this is to have some state (maybe a map int64=>bool) on the mutable tree that lets you know which version(s) is currently being exported.

Yeah, I think so too. Someday™ it would be nice to have proper concurrency control in IAVL, but that should work for now. Thanks!

I like to go iterator pattern and believe it is something we should try to adopt for the db repo. should close in export be renamed to Stop since it is not returning an error?
Is there a way a quick markdown file could be added to the specs?

I like to google iterator pattern and believe it is something we should try to adopt for the db repo. should close in export be renamed to Stop since it is not returning an error?

Hm, interesting. I feel like Close() is the idiomatic way to do this in Go - see e.g. io, http, sql, and net, although those all return error. Don't have a strong opinion, but Stop() doesn't really imply "free up resources" to me.

Is there a way a quick markdown file could be added to the specs?

Sure, I'll add a quick writeup tomorrow.

Hm, interesting. I feel like Close() is the idiomatic way to do this in Go - see e.g. io, http, sql, and net, although those all return error. Don't have a strong opinion, but Stop() doesn't really imply "free up resources" to me.

I wasn't sure how close you were following the google iteractors, ignore my comment 😄

@marbar3778 Added export/import docs here: https://github.com/tendermint/iavl/blob/erik/export-import/docs/tree/export_import.md

Looks good to me!
One suggestion is to serialize the final hash along with export, so that when you re-import, its easy to convince yourself that you get the same hash (for debugging purports)

One suggestion is to serialize the final hash along with export, so that when you re-import, its easy to convince yourself that you get the same hash (for debugging purports)

I was thinking that would be the responsibility of the caller - it's easy enough by grabbing ImmutableTree.Hash() on export and comparing with MutableTree.Hash() after importing.
Export  doesn't actually do any serialization (in the marshalling sense) at all, it just gives an iterator over ExportItem, so that the caller is free to store/send the nodes in whatever format it wishes. The caller would probably want to generate an envelope containing the root hash of the tree for verification, among other data.
This is how state sync is planned to work, where it is the SDKs responsibility to marshal, compress, chunk, and verify exported items as part of multi-tree snapshots.

That makes sense, LGTM

Ran another benchmark on Terra's colombus-3 chain:
Exporting colombus-3 database at version 1225912

acc          : 2488933 nodes (1244467 leaves) in 2m2.264s with size 157 MB
distribution : 4833 nodes (2417 leaves) in 167ms with size 0 MB
evidence     : 0 nodes (0 leaves) in 0s with size 0 MB
god          : 0 nodes (0 leaves) in 0s with size 0 MB
gov          : 9 nodes (5 leaves) in 0s with size 0 MB
main         : 1 nodes (1 leaves) in 0s with size 0 MB
market       : 1 nodes (1 leaves) in 0s with size 0 MB
mint         : 0 nodes (0 leaves) in 0s with size 0 MB
oracle       : 1015 nodes (508 leaves) in 21ms with size 0 MB
params       : 87 nodes (44 leaves) in 1ms with size 0 MB
slashing     : 444911 nodes (222456 leaves) in 6.822s with size 16 MB
staking      : 3077 nodes (1539 leaves) in 44ms with size 0 MB
supply       : 1 nodes (1 leaves) in 0s with size 0 MB
treasury     : 87 nodes (44 leaves) in 1ms with size 0 MB
upgrade      : 0 nodes (0 leaves) in 0s with size 0 MB

Exported 15 stores with 2942955 nodes (1471483 leaves) in 2m9.32s with size 174 MB

Importing into new LevelDB stores

acc         : 2488933 nodes (1244467 leaves) in 24.32s with size 157 MB
distribution: 4833 nodes (2417 leaves) in 51ms with size 0 MB
evidence    : 0 nodes (0 leaves) in 23ms with size 0 MB
god         : 0 nodes (0 leaves) in 29ms with size 0 MB
gov         : 9 nodes (5 leaves) in 37ms with size 0 MB
main        : 1 nodes (1 leaves) in 31ms with size 0 MB
market      : 1 nodes (1 leaves) in 41ms with size 0 MB
mint        : 0 nodes (0 leaves) in 47ms with size 0 MB
oracle      : 1015 nodes (508 leaves) in 50ms with size 0 MB
params      : 87 nodes (44 leaves) in 44ms with size 0 MB
slashing    : 444911 nodes (222456 leaves) in 1.397s with size 16 MB
staking     : 3077 nodes (1539 leaves) in 45ms with size 0 MB
supply      : 1 nodes (1 leaves) in 34ms with size 0 MB
treasury    : 87 nodes (44 leaves) in 37ms with size 0 MB
upgrade     : 0 nodes (0 leaves) in 51ms with size 0 MB

Imported 15 stores with 2942955 nodes (1471483 leaves) in 26.235s with size 174 MB

This seems "good enough" for a first iteration. Any other chains we want to test before I merge this?


How to remove case sensitive filter?

The title speak for it self.
Is there a way to be able to get all the item that either has and ex :"M" or "m"?

Edit: i have found the solution but could there be a way to switch off the filter and put the completer in primitive mode where it show what ever list you send to it?
I'm doing my filtering on the Api side to remove weight on the client.

You can turn filtering off by setting searchFields to null.
For example:
this.dataService = completerService.local(myData, null, null);


feat: support for deno's task runner

Adds support for Deno's built-in task runner #77.

thank you for this awesome plugin


Fix curly braces

This showed up when I was changing doc2tex.pl to parse additional C/C++ function calls. Following is the crash I got (but why didn't the catch_with_backtrace/3 produce a backtrace?)
cd /home/peter/src/swipl-devel/build/packages/swipy && /home/peter/src/swipl-devel/build/src/swipl -f none --no-packs /home/peter/src/swipl-devel/build/home/library/ext/ltx2htm/latex2html.pl -- --quiet janus && /usr/bin/cmake -E remove /home/peter/src/swipl-devel/build/home/doc/manindex.db
ERROR: put_html_token/1: instantiation error
   Redo: (1,353) tex:write_html(nospace([])) ? 20g
  [1,353] tex:write_html(nospace([]))
  [1,352] tex:write_html([nospace([])])
  [1,351] tex:write_html([[nospace([])], nospace(')')])
  [1,349] tex:write_html([[nospace('('), [nospace([])], nospace(')')]])
  [1,347] tex:write_html([[py_dict_as, [nospace('('), [nospace([])], nospace(')')]], html('')])
  [1,344] tex:write_html([lref(func, 'py_dict_as()', [py_dict_as, [nospace('('), [nospace(...)], nospace(...)]]), html(''), html('	'), html('
'), html('
'), html(''), lref(..., ..., ...)|...])
     [16] tex:run_latex2html('/home/peter/src/swipl-devel/build/packages/swipy/janus.tex')
     [15] tex:latex2html(janus, [quiet(true)])
     [12] catch_with_backtrace('<garbage_collected>', '<garbage_collected>', '<garbage_collected>')
     [11] tex:main('<garbage_collected>')
      [9] catch_with_backtrace('<garbage_collected>', '<garbage_collected>', '<garbage_collected>')
      [8] prolog_main:main
      [5] run_init_goal('<garbage_collected>', @(tex:main, '/home/peter/src/swipl-devel/build/home/library/ext/ltx2htm/latex2html.pl':3227))

This problem occurred because I expanded the definition of tr//1 in doc2lex.pl to cover most C and C++ functions, not just those starting with PL_* or S* (https://github.com/SWI-Prolog/swipl-devel/pull/1229).
This resulted in expanding the py_dict_as({{}}) inside \exam{py_dict_as({{}})} and the {} (or {{}}) wasn't expanded because the tr//1 rule doesn't recursively expand the args (doc2tex.pl doesn't seem to do anything with \exam, so I don't know where it's expanded).

doc2lex.pl is the appropriate place to fix this.


Navigator 2.0 can't provide initial page

Steps to Reproduce

Run flutter create bug.
Replace main.dart

main.dart
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:rxdart/rxdart.dart';
import 'package:unrulr_mobile/blocs/api_call_bloc.dart';
import 'package:unrulr_mobile/blocs/bloc_utils.dart';
import 'package:unrulr_mobile/blocs/connections_bloc.dart';
import 'package:unrulr_mobile/blocs/membership_bloc.dart';
import 'package:unrulr_mobile/blocs/objective_descriptions_bloc.dart';
import 'package:unrulr_mobile/blocs/refresh_feed_bloc.dart';
import 'package:unrulr_mobile/components/common/unrulr_progress_indicator.dart';
import 'package:unrulr_mobile/components/create/status_display.dart';
import 'package:unrulr_mobile/components/exhibition_display.dart';
import 'package:unrulr_mobile/components/utils/stream_builder_combinators.dart';
import 'package:unrulr_mobile/data/external/api.dart';
import 'package:unrulr_mobile/data/public_exhibition_info.dart';
import 'package:unrulr_mobile/navigation/top_level_nav_key_provider.dart';
import 'package:unrulr_mobile/screens/journey_screen.dart';
import 'package:unrulr_mobile/theme.dart';
import 'package:unrulr_mobile/utils/async_status.dart';

class ElephantCowApp extends StatefulWidget {
  @override
  _ElephantCowAppState createState() => _ElephantCowAppState();
}

class _ElephantCowAppState extends State<ElephantCowApp> {
  final _publicRouter = ElephantCowRouterDelegate();
  final _routeParser = PublicRouteInformationParser();

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerDelegate: _publicRouter,
      routeInformationParser: _routeParser,
    );
  }
}

/// Expand to ADT or Class/Subclasses as needed
@immutable
class ElephantCowPath {
  final bool isElephant;
  final bool isCow;

  ElephantCowPath.elephant()
      : isElephant = true,
        isCow = false;
  ElephantCowPath.cow()
      : isElephant = false,
        isCow = true;

  T caseMap<T>({
    @required T Function() onElephant,
    @required T Function() onCow,
  }) {
    if (isElephant) {
      return onElephant();
    }

    if (isCow) {
      return onCow();
    }

    throw UnimplementedError('Case not handled in path $this');
  }

  @override
  bool operator ==(Object other) {
    if (other is ElephantCowPath) {
      if (isElephant && other.isElephant) {
        return true;
      }

      if (isCow && other.isCow) {
        return true;
      }
    }

    return false;
  }

  @override
  String toString() {
    return caseMap(
      onCow: () => 'Path: cow',
      onElephant: () => 'Path: elephant',
    );
  }
}

class ElephantPage extends Page<ElephantCowPath> {
  ElephantPage() : super(key: ValueKey('elephant'));

  @override
  Route<ElephantCowPath> createRoute(BuildContext context) {
    return MaterialPageRoute(
      settings: this,
      builder: (_) => Scaffold(
        body: Center(
          child: Text('I am an elephant'),
        ),
      ),
    );
  }
}

class CowPage extends Page<ElephantCowPath> {
  CowPage() : super(key: ValueKey('cow'));

  @override
  Route<ElephantCowPath> createRoute(BuildContext context) {
    return MaterialPageRoute(
      settings: this,
      builder: (_) => Scaffold(
        body: Center(
          child: Text('I am a cow.  Moo.'),
        ),
      ),
    );
  }
}

class ElephantCowRouterDelegate extends RouterDelegate<ElephantCowPath>
    with ChangeNotifier, PopNavigatorRouterDelegateMixin<ElephantCowPath> {
  final _navigatorKey = GlobalKey<NavigatorState>();

  final routeStack = <ElephantCowPath>[];

  @override
  ElephantCowPath get currentConfiguration =>
      routeStack.isNotEmpty ? routeStack.last : null;

  @override
  Widget build(BuildContext context) {
    print('building router');

    return Navigator(
      key: _navigatorKey,
      pages: [
        ...routeStack.map(_buildPage),
      ],
      onPopPage: (route, dynamic result) {
        if (!route.didPop(result)) {
          return false;
        }

        return true;
      },
    );
  }

  @override
  Future<void> setInitialRoutePath(ElephantCowPath path) {
    print('set initial route path');
    return setNewRoutePath(path);
  }

  @override
  Future<void> setNewRoutePath(ElephantCowPath path) async {
    print('setting new path: $path');

    if (routeStack.isEmpty || routeStack.last != path) {
      print('added path');
      routeStack.add(path);
    } else {
      print('skipped add path');
    }

    return SynchronousFuture(null);
  }

  @override
  GlobalKey<NavigatorState> get navigatorKey => _navigatorKey;

  static Page<ElephantCowPath> _buildPage(ElephantCowPath p) {
    return p.caseMap(
      onElephant: () => ElephantPage(),
      onCow: () => CowPage(),
    );
  }
}

class PublicRouteInformationParser
    extends RouteInformationParser<ElephantCowPath> {
  @override
  Future<ElephantCowPath> parseRouteInformation(
    RouteInformation routeInformation,
  ) async {
    return SynchronousFuture(_parsePublicPath(routeInformation.location));
  }

  static ElephantCowPath _parsePublicPath(String location) {
    final uri = Uri.parse(location);

    // Handle '/'
    if (uri.pathSegments.length == 0) {
      print('parsed: root');
      return ElephantCowPath.elephant();
    }

    // Handle '/post/:id'
    if (uri.pathSegments.length == 1) {
      if (uri.pathSegments.first == 'elephant') {
        print('parsed: elephant');
        return ElephantCowPath.elephant();
      }

      if (uri.pathSegments.first == 'cow') {
        print('parsed: cow');
        return ElephantCowPath.cow();
      }
    }

    // Handle unknown routes
    print('parsed: unknown ${uri.pathSegments.join('/')}');
    return ElephantCowPath.elephant();
  }

  @override
  RouteInformation restoreRouteInformation(ElephantCowPath path) {
    print('restoring route info - $path');

    return path.caseMap(
      onCow: () => RouteInformation(location: '/cow'),
      onElephant: () => RouteInformation(location: '/elephant'),
    );
  }
}

flutter run -d chrome

Expected results:
Navigator 2.0 loads the initial page based on the browser url.
Actual results:
Navigator 2.0 throws an error before it attempts to parse the url.
The following assertion was thrown building Builder:
Navigator.onGenerateRoute was null, but the route named "/" was referenced.
To use the Navigator API with named routes (pushNamed, pushReplacementNamed, or
pushNamedAndRemoveUntil), the Navigator must be provided with an onGenerateRoute handler.
The Navigator was:
  NavigatorState#aaa00(lifecycle state: initialized)

The relevant error-causing widget was:
  MaterialApp
  .../elephant_cow_navigator_2_0/lib/main.dart:19:24

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49  throw_
packages/flutter/src/widgets/navigator.dart 3967:9                            <fn>
packages/flutter/src/widgets/navigator.dart 3976:14
[_routeNamed]
packages/flutter/src/widgets/navigator.dart 2763:27
defaultGenerateInitialRoutes
packages/flutter/src/widgets/navigator.dart 3332:41

More info
  /// This is called whenever the [setInitialRoutePath] method's future
  /// completes, the [setNewRoutePath] method's future completes with the value
  /// true, the [popRoute] method's future completes with the value true, or
  /// this object notifies its clients (see the [Listenable] interface, which
  /// this interface includes). In addition, it may be called at other times. It
  /// is important, therefore, that the methods above do not update the state
  /// that the [build] method uses before they complete their respective
  /// futures.

Based on its name and the documentation around the build method on RouterDelegate, I would expect setInitialRoutePath to set the initial Path.
Instead, if Navigator.pages is initially empty, the Navigator attempts to use onGenerateRoute to create the initial route.  If I'm using Navigator 2.0, I wouldn't expect to implement onGenerateRoute.
Workarounds
I can add a temporary initial route, and remove it as soon as I parse the url, but that seems fairly convoluted for a pretty basic case.

Doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 1.24.0-10.2.pre, on Mac OS X 10.15.7 19H15 darwin-x64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[!] Xcode - develop for iOS and macOS (Xcode 12.1)
    ! CocoaPods 1.8.3 out of date (1.9.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.51.1)
[✓] Connected device (2 available)

Issue replicable on latest beta and on latest master.

Error log
For a more detailed help message, press "h". To quit, press "q".
parsed: root
building router
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building Builder:
Navigator.onGenerateRoute was null, but the route named "/" was referenced.
To use the Navigator API with named routes (pushNamed, pushReplacementNamed, or
pushNamedAndRemoveUntil), the Navigator must be provided with an onGenerateRoute handler.
The Navigator was:
  NavigatorState#0fe83(lifecycle state: initialized)

The relevant error-causing widget was:
  MaterialApp file:///Users/dhs/Documents/NCFlutter/webtest/lib/main.dart:19:24

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49  throw_
packages/flutter/src/widgets/navigator.dart 4007:9                            <fn>
packages/flutter/src/widgets/navigator.dart 4016:14                           [_routeNamed]
packages/flutter/src/widgets/navigator.dart 2803:27                           defaultGenerateInitialRoutes
packages/flutter/src/widgets/navigator.dart 3372:41                           restoreState
packages/flutter/src/widgets/restoration.dart 982:5                           [_doRestore]
packages/flutter/src/widgets/restoration.dart 968:7                           didChangeDependencies
packages/flutter/src/widgets/navigator.dart 3411:11                           didChangeDependencies
packages/flutter/src/widgets/framework.dart 4842:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 6173:14                           mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
set initial route path
setting new path: Path: elephant
added path
building router
restoring route info - Path: elephant
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 6173:14                           mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 6173:14                           mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/framework.dart 4709:16                           performRebuild
packages/flutter/src/widgets/framework.dart 4856:11                           performRebuild
packages/flutter/src/widgets/framework.dart 4378:5                            rebuild
packages/flutter/src/widgets/framework.dart 4663:5                            [_firstBuild]
packages/flutter/src/widgets/framework.dart 4847:11                           [_firstBuild]
packages/flutter/src/widgets/framework.dart 4658:5                            mount
packages/flutter/src/widgets/framework.dart 3624:13                           inflateWidget
packages/flutter/src/widgets/framework.dart 3389:18                           updateChild
packages/flutter/src/widgets/binding.dart 1208:16                             [_rebuild]
packages/flutter/src/widgets/binding.dart 1179:5                              mount
packages/flutter/src/widgets/binding.dart 1121:16                             <fn>
packages/flutter/src/widgets/framework.dart 2730:19                           buildScope
packages/flutter/src/widgets/binding.dart 1120:12                             attachToRenderTree
packages/flutter/src/widgets/binding.dart 959:24                              attachRootWidget
packages/flutter/src/widgets/binding.dart 941:7                               <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 48:19       internalCallback

beta and master flutter doctor -v
[✓] Flutter (Channel beta, 1.24.0-10.2.pre, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.24.0-10.2.pre at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 022b333a08 (6 days ago), 2020-11-18 11:35:09 -0800
    • Engine revision 07c1eed46b
    • Dart version 2.12.0 (build 2.12.0-29.10.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • 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.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • 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 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (4 available)
    • SM A260G (mobile)                   • 5200763ebcfa861f
      • android-arm    • Android 8.1.0 (API 27)
    • iPhone SE (2nd generation) (mobile) • 6C85835D-FBFD-4AB3-8DE8-B4FAD35E5367
      • 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 87.0.4280.67

• No issues found!

[✓] Flutter (Channel master, 1.24.0-8.0.pre.344, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.24.0-8.0.pre.344 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision de56c6ad72 (35 hours ago), 2020-11-23 05:28:06 +0900
    • Engine revision 23a8e027db
    • Dart version 2.12.0 (build 2.12.0-62.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • 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.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • 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 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (5 available)
    • SM A260G (mobile)                   • 5200763ebcfa861f
      • android-arm    • Android 8.1.0 (API 27)
    • iPhone SE (2nd generation) (mobile) • 6C85835D-FBFD-4AB3-8DE8-B4FAD35E5367
      • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)
    • macOS (desktop)                     • macos
      • darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Web Server (web)                    • web-server
      • web-javascript • Flutter Tools
    • Chrome (web)                        • chrome
      • web-javascript • Google Chrome 87.0.4280.67

• No issues found!

@wreppun FYI I see below exception also:
Another exception was thrown: A GlobalKey was used multiple times inside one widget's child list. after running your code sample.

Related to 65777

@darshankawar I saw that exception too, but I think that's an artifact of the earlier exception?
Both exceptions disappear when an initial page is used.

I think there are two issues here:

We should update the error message says the page list cannot be empty
The code uses synchronous future, the route stack should have the route when build is called. I am not sure why this isn't the case

For now, you can workaround this by building some default route when route stack is empty.

Removed the web label as this doesn't look web-specific.

I have a Navigator 2.0 widget (with pages and onPopPage) nested inside a regular navigator with named routes. This internal navigator is accessed through a named route.
Whenever I navigate to it, this error is thrown. I wasn't able to determine if this is the same issue or if I should create a new one.

if you returns synchronous future, you will want to remove the async keyword in the function, otherwise it still turns it into a async future.
Something like this will work. If the logic does have to be async, you will need to handle the case where the build is called before the parsing finishes. I will update the error message

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(ElephantCowApp());
}

class ElephantCowApp extends StatefulWidget {
  @override
  _ElephantCowAppState createState() => _ElephantCowAppState();
}

class _ElephantCowAppState extends State<ElephantCowApp> {
  final _publicRouter = ElephantCowRouterDelegate();
  final _routeParser = PublicRouteInformationParser();

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerDelegate: _publicRouter,
      routeInformationParser: _routeParser,
    );
  }
}

/// Expand to ADT or Class/Subclasses as needed
@immutable
class ElephantCowPath {
  final bool isElephant;
  final bool isCow;

  ElephantCowPath.elephant()
      : isElephant = true,
        isCow = false;
  ElephantCowPath.cow()
      : isElephant = false,
        isCow = true;

  T caseMap<T>({
    @required T Function() onElephant,
    @required T Function() onCow,
  }) {
    if (isElephant) {
      return onElephant();
    }

    if (isCow) {
      return onCow();
    }

    throw UnimplementedError('Case not handled in path $this');
  }

  @override
  bool operator ==(Object other) {
    if (other is ElephantCowPath) {
      if (isElephant && other.isElephant) {
        return true;
      }

      if (isCow && other.isCow) {
        return true;
      }
    }

    return false;
  }

  @override
  String toString() {
    return caseMap(
      onCow: () => 'Path: cow',
      onElephant: () => 'Path: elephant',
    );
  }
}

class ElephantPage extends Page<ElephantCowPath> {
  ElephantPage() : super(key: ValueKey('elephant'));

  @override
  Route<ElephantCowPath> createRoute(BuildContext context) {
    return MaterialPageRoute(
      settings: this,
      builder: (_) => Scaffold(
        body: Center(
          child: Text('I am an elephant'),
        ),
      ),
    );
  }
}

class CowPage extends Page<ElephantCowPath> {
  CowPage() : super(key: ValueKey('cow'));

  @override
  Route<ElephantCowPath> createRoute(BuildContext context) {
    return MaterialPageRoute(
      settings: this,
      builder: (_) => Scaffold(
        body: Center(
          child: Text('I am a cow.  Moo.'),
        ),
      ),
    );
  }
}

class ElephantCowRouterDelegate extends RouterDelegate<ElephantCowPath>
    with ChangeNotifier, PopNavigatorRouterDelegateMixin<ElephantCowPath> {
  final _navigatorKey = GlobalKey<NavigatorState>();

  final routeStack = <ElephantCowPath>[];

  @override
  ElephantCowPath get currentConfiguration =>
      routeStack.isNotEmpty ? routeStack.last : null;

  @override
  Widget build(BuildContext context) {
    print('building router');

    return Navigator(
      key: _navigatorKey,
      pages: [
        ...routeStack.map(_buildPage),
      ],
      onPopPage: (route, dynamic result) {
        if (!route.didPop(result)) {
          return false;
        }

        return true;
      },
    );
  }

  @override
  Future<void> setInitialRoutePath(ElephantCowPath path) {
    print('set initial route path');
    return setNewRoutePath(path);
  }

  @override
  Future<void> setNewRoutePath(ElephantCowPath path) {
    print('setting new path: $path');

    if (routeStack.isEmpty || routeStack.last != path) {
      print('added path');
      routeStack.add(path);
    } else {
      print('skipped add path');
    }

    return SynchronousFuture(null);
  }

  @override
  GlobalKey<NavigatorState> get navigatorKey => _navigatorKey;

  static Page<ElephantCowPath> _buildPage(ElephantCowPath p) {
    return p.caseMap(
      onElephant: () => ElephantPage(),
      onCow: () => CowPage(),
    );
  }
}

class PublicRouteInformationParser
    extends RouteInformationParser<ElephantCowPath> {
  @override
  Future<ElephantCowPath> parseRouteInformation(
      RouteInformation routeInformation,
      ) {
    return SynchronousFuture(_parsePublicPath(routeInformation.location));
  }

  static ElephantCowPath _parsePublicPath(String location) {
    final uri = Uri.parse(location);

    // Handle '/'
    if (uri.pathSegments.length == 0) {
      print('parsed: root');
      return ElephantCowPath.elephant();
    }

    // Handle '/post/:id'
    if (uri.pathSegments.length == 1) {
      if (uri.pathSegments.first == 'elephant') {
        print('parsed: elephant');
        return ElephantCowPath.elephant();
      }

      if (uri.pathSegments.first == 'cow') {
        print('parsed: cow');
        return ElephantCowPath.cow();
      }
    }

    // Handle unknown routes
    print('parsed: unknown ${uri.pathSegments.join('/')}');
    return ElephantCowPath.elephant();
  }

  @override
  RouteInformation restoreRouteInformation(ElephantCowPath path) {
    print('restoring route info - $path');

    return path.caseMap(
      onCow: () => RouteInformation(location: '/cow'),
      onElephant: () => RouteInformation(location: '/elephant'),
    );
  }
}

I ran into this same error, no idea why it's happening as I'm just trying to set initialPath on a Navigator that has a single persistent MaterialPage. The onGenerateRoute hack worked but it did not correctly set my initialPath.
In the end I just went straight to the source:
  Future<void> setInitialRoutePath(String path) {
    if (path == "/") path = myInitialPath ?? path;
    return super.setInitialRoutePath(path);
  }

@esDotDev
navigator initialpath only works for the first build, and that is one of the limitation we decide to go with nav2. Since you can pass your own pages, you should be able to change the page freely.

Thank you for the example here @chunhtai
Removing the async keyword from parseRouteInformation and returning a Synchronous location is what helped setInitialRoutePath work correctly.
Posting the errors here to help future users who are searching for a solution.
Error:

The Navigator.pages must not be empty to use the Navigator.pages API

The following assertion was thrown building Builder:
A GlobalKey was used multiple times inside one widget's child list.
The offending GlobalKey was: [LabeledGlobalKey#6d0cb]
The parent of the widgets with that key was:
Builder
The first child to get instantiated with that key became:
Navigator-[LabeledGlobalKey#6d0cb]
The second child that was to be instantiated with that key was:
Builder
A GlobalKey can only be specified on one widget at a time in the widget tree.

Fixed parseRouteInformation.
  @override
  Future<DefaultRoute> parseRouteInformation(
      RouteInformation routeInformation) async {
    final Uri uri = Uri.parse(routeInformation.location ?? '');
    return SynchronousFuture(DefaultRoute.parse(uri));
  }

@chunhtai
What can I do if I need the async because it is getting a future value from my backend?
Future<void> isUserLoggedIn() async {
    ParseUser? currentUser = await ParseUser.currentUser() as ParseUser?;
    if (currentUser == null) {
      setNewRoutePath(loginPageConfig);
    }
    //Checks whether the user's session token is valid
    final ParseResponse parseResponse =
        (await ParseUser.getCurrentUserFromServer(
            currentUser!.get<String>('sessionToken')!))!;

    if (!parseResponse.success) {
      //Invalid session. Logout
      await currentUser.logout();
      setNewRoutePath(loginPageConfig);
    } else {
      setNewRoutePath(navBarPageConfig);
    }
  }

@mtgnoah If the logic does have to be async, you will need to handle the case where the build is called before the parsing finishes.

@mtgnoah If the logic does have to be async, you will need to handle the case where the build is called before the parsing finishes.

How would I handle that case? Should I implement a route that is just a loading screen with circularprogressindicator?

@chunhtai Also just letting you know that Parse is the backend and that is what I am awaiting on. It's not parsing anything.

Unhandled Exception: Null check operator used on a null value  This is the error I am receiving by the way.

final ParseResponse parseResponse =
(await ParseUser.getCurrentUserFromServer(
currentUser!.get('sessionToken')!))!;
This is the line that causes the error. I also tried wrapping it in an if statement of if(currentUser != null)

This worked! For anyone with the same issue on accessing backend
    ParseUser? currentUser = await ParseUser.currentUser() as ParseUser?;
    ParseResponse? parseResponse;
    if (currentUser == null) {
      setNewRoutePath(loginPageConfig);
    }
    if (currentUser != null) {
      //Checks whether the user's session token is valid
      parseResponse = (await ParseUser.getCurrentUserFromServer(
          currentUser.get<String>('sessionToken')!))!;
    }
    if (parseResponse?.success ?? false) {
      //Invalid session. Logout
      await currentUser!.logout();
      setNewRoutePath(loginPageConfig);
    } else {
      setNewRoutePath(navBarPageConfig);
    }
  }


Ability to set scope on attached fields

Versions:

VueJs: 2.3.3
Vee-Validate: 2.0.0-beta.25

Description:
I had a similar issue to this: #168, but in my case, the problem went a step further and I needed to specify the form scope. Is there a way to do that using the attach method? I'm trying to validate that an array isn't empty when the form submits.
The use case here is an tags input component, where not only I need to validate every tag individually as they enter them (for example emails only) but also I need to make sure that they enter at least one when they try to submit the form. It is a requirement to have scopes for forms, as is a usual thing to have multiple forms on the same page. I'm not sure how to go about this without adding a scope to the attached field.
Thoughts? Thanks...

You can pass a scope property to the options in the attach method:
this.$validator.attach('attached-field', 'required|alpha', {
  context: () => this.$refs.attachedField,
  getter: (context) => context.value,
  scope: 'myScope'
});

Yeah I figured that was the case by looking at the source code... Thanks for your response!


Copy comment from LocationModule.java to Geolocation.js

This is to give a hint to developers when getCurrentPosition not returning anything on Android

@facebook-github-bot shipit