Ensure class and id attributes work properly.

Using the following should set id and class on the rendered element:
<FooBar class=“big” id=“awesome-123” />

The current system adds to attributeBindings, but since class and id are “special” we should add some tests to ensure they work properly.

@rwjblue, what's the recommended way of accessing these attributes in a tagless component?
Passing ...attributes works when blanket applying attrs to a div in the template, but I'd like to extend/modify before usage in the component.
I noticed the values are exposed via this.__ANGLE_ATTRS__.{class|id}.inner.

Passing ...attributes works when blanket applying attrs to a div in the template, but I'd like to extend/modify before usage.

It should not be possible to access attribute values in the component JavaScript at all. If your component needs to do something with a value it should be passed as a named argument (e.g. as @class={{something}} instead of class=).

I noticed the values are exposed via this.ANGLE_ATTRS.{class|id}.inner.

This is a private implementation detail of this polyfill, when Ember 3.4+ is used this will not work...

@rwjblue, thanks for the explanation!

I know it's not totally related to this issue but I stumble across this issue when I search for a way to access the ...attributes

It should not be possible to access attribute values in the component JavaScript at all. If your component needs to do something with a value it should be passed as a named argument (e.g. as @class={{something}} instead of class=).

I'm not 100% sure if this constraint is very beneficial. We have the following problem:
We have an input component with some html around. This html should be "greyed out" when the input is disabled. Therefore we use a CSS class. The hbs looks something like:

    {{@label}}
    <select id="objecttype" disabled={{this.disabled}} ...attributes>
        {{yield}}
    </select>
    {{#if @hint}}

{{@hint}}

    {{else}}

    {{/if}}

Now the "user" of this component needs to know exactly what attributes are JS specific and which are HTML only. Since disabled is also a HTML attribute this is not very intuitive for the "user" of the component. The invocation would look something like:
<CustomInput
    @hint="hint"  // okay hint is no HTML attribute use @
    @label="label"  // okay label is no HTML attribute use @
    @disabled=this.isSaving   // okay disabled is a HTML attribute but we use it in JS as well so use @
    id="id"  // okay id is a HTML attribute do not use @
    name="name"  // okay name is a HTML attribute do not use @
    class="some-extra-css"  // okay class is a HTML attribute do not use @
/>

This didn't seem so nice to us so we decided to try to workaround this problem. Then we thought if we use the did-update modifier but the did-update only fires when you sepecify which arguments should be "watched" and therefore we can not set HTML attributes internally.
Maybe I just think wrong or I overlook something but I'm not sure how to solve this and keep a nice api for the "component user"


Some micro-perf-optimizations

Skimmed through the code base (really impressive algorithm) and fixed some low hanging fruits which jumped into my eye.
Basically it's exercising some C# and JIT-tricks, as well some new APIs in .NET 5, especially for array-accesses where the bound-checks are avoided. They can sum-up if done for each access to an array or span.
Please see individual commits, they have links in the message that help to explain / demonstrate the difference in generated asm-code.
Benchmarks
This PR + #54
Based on caaccaa9bd9ea88a7e1491bde59de653bec8e6c0 with #54 merged into that commit.
|                   Method |        FileName |      Mean |     Error |    StdDev |       Min | Ratio | MFloat/s |     MB/s |
|------------------------- |---------------- |----------:|----------:|----------:|----------:|------:|---------:|---------:|
|  FastFloat.ParseDouble() | data/canada.txt |  6.263 ms | 0.0587 ms | 0.0549 ms |  6.166 ms |  0.16 |    18,02 |   356,33 |
| ParseNumberString() only | data/canada.txt |  3.487 ms | 0.0312 ms | 0.0277 ms |  3.454 ms |  0.09 |    32,18 |   636,14 |
|           Double.Parse() | data/canada.txt | 39.207 ms | 0.7458 ms | 0.6612 ms | 38.294 ms |  1.00 |     2,90 |    57,37 |
|                          |                 |           |           |           |           |       |          |          |
|  FastFloat.ParseDouble() |   data/mesh.txt |  2.329 ms | 0.0178 ms | 0.0148 ms |  2.301 ms |  0.34 |    31,73 |   300,27 |
| ParseNumberString() only |   data/mesh.txt |  1.593 ms | 0.0173 ms | 0.0145 ms |  1.572 ms |  0.23 |    46,44 |   439,43 |
|           Double.Parse() |   data/mesh.txt |  6.792 ms | 0.1302 ms | 0.1599 ms |  6.615 ms |  1.00 |    11,04 |   104,46 |

Current master
Current master is 788081cb2bb7a8846096357a15b5a7fe86773a70
|                   Method |        FileName |      Mean |     Error |    StdDev |       Min | Ratio | MFloat/s |     MB/s |
|------------------------- |---------------- |----------:|----------:|----------:|----------:|------:|---------:|---------:|
|  FastFloat.ParseDouble() | data/canada.txt |  7.085 ms | 0.1272 ms | 0.0993 ms |  6.849 ms |  0.18 |    16,23 |   320,80 |
| ParseNumberString() only | data/canada.txt |  3.783 ms | 0.0733 ms | 0.0784 ms |  3.672 ms |  0.09 |    30,26 |   598,31 |
|           Double.Parse() | data/canada.txt | 39.955 ms | 0.6315 ms | 0.5598 ms | 39.123 ms |  1.00 |     2,84 |    56,16 |
|                          |                 |           |           |           |           |       |          |          |
|  FastFloat.ParseDouble() |   data/mesh.txt |  2.487 ms | 0.0323 ms | 0.0287 ms |  2.449 ms |  0.37 |    29,81 |   282,12 |
| ParseNumberString() only |   data/mesh.txt |  1.700 ms | 0.0324 ms | 0.0287 ms |  1.660 ms |  0.25 |    43,98 |   416,15 |
|           Double.Parse() |   data/mesh.txt |  6.678 ms | 0.1084 ms | 0.0961 ms |  6.541 ms |  1.00 |    11,16 |   105,65 |

That's very impressive !!!!

I expect that the sizeable performance gains can be attributed to two reasons: Unsafe.CopyBlockUnaligned to avoid input validation and the non-bound-checking  exact_power_of_ten. But I am surprised that it can boost the canada performance by ~10% so there might be other important effects that I am missing. (I am aware that there are other optimizations in this PR, but I expect that they account for a small percentage of the gain.)

I didn't measure each step, but from gut feeling I'd say

removing of the bound-checks (it's the cmp and jmp combo) which also makes the code (especially loops) tighter*
is_integer has a movzx less, but it's called (note: it's inlined) very often, so it will sum-up
Unsafe.CopyBlockUnaligned**

* the branch predictor will do a good job -- at least I assume so -- but tighter loops may be a reason for the boost, maybe we are lucky and the loops will be properly aligned. I don't know the current loop-alignment rules in the JIT, and there were some recent changes, so I'm not up to date here.
** maybe I'm wrong here and the effect is greater, as you assume. It compiles down to mem -> reg -> mem, so ideal.

Ah, almost forgot. Removing the bound-checks has another effect.
In .NET the length of the array is stored before the first element, and for a bound-check the length is required. So the length and the accessed element may reside on different cachelines.
Would need to investigate how much this effect is actually.
For parallel code this effect (resuling in false sharing) can be seen clearly (https://gist.github.com/gfoidl/346ea7472f06e2024b8bdc9c598e547e#gistcomment-2773628).

Next perf steps would be looking into it with VTune, PerfView, etc.
With looking at the compiled assembly code I can't spot anything (at the moment), which can be optimized w/o changing the JIT. Maybe a few littel steps may still arise.

VTune

ParsedNumberString.ParseNumberString
If I'm not off it's

FastDoubleParser.ComputeFloat

FastDoubleParser.ParseNumber

@gfoidl You would think that the is_integer optimization would count for a lot, but if you look at ParseNumberString results, at least according to your numbers, they are not helped that much. So the performance boost remains a bit mysterious to me.
Well. We are talking about ~5% to ~15% so it is not like these sort of optimizations have fully predictable results from first principles.
(Note : ~5% to ~15% is huge for the use case here. I am not dismissing the achievement.)

@CarlVerret I recommend merging. The is_integer code is a tad ugly (😄), but it appears to be justified.

I'm just running benchmarks, looks promising.
The is_integer won't change the needle much, it safes "just" one redundant add with a constant. The cpu's execution will do this in "parallel" anyway, but I didn't like this redundancy and it's a bit less instructions to fetch & decode.

So the performance boost remains a bit mysterious to me.

😉 On the other side for me it's quite obvious, but I'm working with C# / .NET for quite a long time, so some of the inner workings are familiar to me.
Overall the biggest player for the perf-improvements is the removal of bound-checks.

Latest numbers:
|                   Method |        FileName |      Mean |     Error |    StdDev |       Min | Ratio | MFloat/s |     MB/s |
|------------------------- |---------------- |----------:|----------:|----------:|----------:|------:|---------:|---------:|
|  FastFloat.ParseDouble() | data/canada.txt |  6.085 ms | 0.1034 ms | 0.0864 ms |  5.985 ms |  0.15 |    18,57 |   367,08 |
| ParseNumberString() only | data/canada.txt |  3.368 ms | 0.0463 ms | 0.0411 ms |  3.319 ms |  0.08 |    33,48 |   661,89 |
|           Double.Parse() | data/canada.txt | 39.539 ms | 0.7062 ms | 1.1404 ms | 38.550 ms |  1.00 |     2,88 |    56,99 |
|                          |                 |           |           |           |           |       |          |          |
|  FastFloat.ParseDouble() |   data/mesh.txt |  2.274 ms | 0.0221 ms | 0.0196 ms |  2.236 ms |  0.35 |    32,66 |   309,08 |
| ParseNumberString() only |   data/mesh.txt |  1.571 ms | 0.0247 ms | 0.0231 ms |  1.544 ms |  0.24 |    47,30 |   447,64 |
|           Double.Parse() |   data/mesh.txt |  6.440 ms | 0.0550 ms | 0.0459 ms |  6.379 ms |  1.00 |    11,45 |   108,33 |

It's 0f59fe8261cfa273bf71363525da762e8782f94e with #54 merged into it.

The cpu's execution will do this in "parallel" anyway

You might be pessimistic in the value of your optimization. I do not not have the numbers for C#, but in C++, this code is at about 280 instructions per float... so saving, say, 20 instructions, would be 5% to 10% of the total instruction count. Of course, instruction counts do not translate into better performance... normally... but if you look at the number of instructions retired per cycle for this code, in C++, we pretty much max out the width of the processor (>=4 ins. per cycle on Intel/AMD, 8 ins. per cycle on ARM M1). Look at the ParseNumberString numbers. These do not benefit for the bound checking optimization when looking up precomputed floats (exact_power_of_ten). For canada, you are at min of 3.319 ms whereas the main branch is at  3.672 ms. So you basically have a 10% boost. For mesh, your min is at 1.544 ms starting from  1.660 ms, so ~7%. And mesh has shorter strings.
If we were assumed that it was ASCII instead of the pesky UTF-16, we could go faster even !

Overall the biggest player for the perf-improvements is the removal of bound-checks.

Let us take canada. You went from 6.849 ms to 5.985 ms a saving of 0.86 ms. The bound checking part should not benefit ParseNumberString and it went from 3.319 ms to 3.672 ms, a saving of 0.35 ms. So I would expect that 0.5 ms of the gain (or ~2/3) is due to the unsafe copy  and the non-bound-checking exact_power_of_ten. Now, mesh is going to benefit much more from the non-bound-checking exact_power_of_ten because it relies entirely on the fast path. Yet of the two sets, you see the larger benefits with canada (14%) as opposed to mesh (9%).
In any case, this is fantastic work. People often say that bound checking is free, and you are definitively showing that it is not case.

Overall the biggest player for the perf-improvements is the removal of bound-checks.

Let us take canada. You went from 6.849 ms to 5.985 ms a saving of 0.86 ms. The bound checking part should not benefit ParseNumberString and it went from 3.319 ms to 3.672 ms, a saving of 0.35 ms. So I would expect that 0.5 ms of the gain (or ~2/3) is due to the unsafe copy  and the non-bound-checking exact_power_of_ten. Now, mesh is going to benefit much more from the non-bound-checking exact_power_of_ten because it relies entirely on the fast path. Yet of the two sets, you see the larger benefits with canada (14%) as opposed to mesh (6%).
In any case, people often say that bound checking is free and your work here shows that it is not.
(To be clear, it is often free... but that's because it is drowned in the noise.)

@gfoidl  Can you sync with the main branch?

For reference:

asm generated for `FastDoubleParser.ParseDouble` with canada
; csFastFloat.Benchmark.FFBencmark.FastParser_()
       push      rdi
       push      rsi
       push      rbx
       sub       rsp,30
       vzeroupper
       vmovaps   [rsp+20],xmm6
       vmovsd    xmm6,qword ptr [7FFA9B380AB0]
       mov       rsi,[rcx+8]
       xor       edi,edi
       mov       ebx,[rsi+8]
       test      ebx,ebx
       jle       short M00_L03
M00_L00:
       movsxd    rcx,edi
       mov       rcx,[rsi+rcx*8+10]
       mov       edx,3
       mov       r8d,2E
       call      csFastFloat.FastDoubleParser.ParseDouble(System.String, csFastFloat.Enums.chars_format, Char)
       vucomisd  xmm0,xmm6
       ja        short M00_L01
       jmp       short M00_L02
M00_L01:
       vmovaps   xmm6,xmm0
M00_L02:
       inc       edi
       cmp       ebx,edi
       jg        short M00_L00
M00_L03:
       vmovaps   xmm0,xmm6
       vmovaps   xmm6,[rsp+20]
       add       rsp,30
       pop       rbx
       pop       rsi
       pop       rdi
       ret
; Total bytes of code 97

; csFastFloat.FastDoubleParser.ParseDouble(System.String, csFastFloat.Enums.chars_format, Char)
       sub       rsp,38
       vzeroupper
       xor       eax,eax
       mov       [rsp+30],rax
       mov       eax,edx
       test      rcx,rcx
       je        short M01_L00
       lea       r9,[rcx+0C]
       mov       [rsp+30],r9
       mov       r9,[rsp+30]
       mov       ecx,[rcx+8]
       mov       [rsp+28],r9
       lea       rdx,[r9+rcx*2]
       movzx     r9d,r8w
       mov       rcx,[rsp+28]
       mov       r8d,eax
       call      csFastFloat.FastDoubleParser.ParseNumber(Char*, Char*, csFastFloat.Enums.chars_format, Char)
       nop
       add       rsp,38
       ret
M01_L00:
       call      csFastFloat.FastDoubleParser.<ParseDouble>g__ThrowArgumentNull|4_0()
       int       3
; Total bytes of code 76

; csFastFloat.FastDoubleParser.ParseNumber(Char*, Char*, csFastFloat.Enums.chars_format, Char)
       push      r14
       push      rdi
       push      rsi
       push      rbp
       push      rbx
       sub       rsp,6B0
       vzeroupper
       mov       rsi,rcx
       mov       rdi,rdx
       mov       eax,r8d
       mov       ebx,r9d
       jmp       short M02_L01
M02_L00:
       add       rsi,2
M02_L01:
       cmp       rsi,rdi
       je        short M02_L02
       movzx     ecx,byte ptr [rsi]
       mov       rdx,1783F046884
       cmp       byte ptr [rcx+rdx],0
       jne       short M02_L00
M02_L02:
       cmp       rsi,rdi
       je        near ptr M02_L08
       mov       dword ptr [rsp+20],2E
       lea       rcx,[rsp+698]
       mov       rdx,rsi
       mov       r8,rdi
       mov       r9d,eax
       call      csFastFloat.Structures.ParsedNumberString.ParseNumberString(Char*, Char*, csFastFloat.Enums.chars_format, Char)
       cmp       byte ptr [rsp+6A9],0
       jne       short M02_L03
       mov       rcx,rsi
       mov       rdx,rdi
       call      csFastFloat.FastDoubleParser.HandleInvalidInput(Char*, Char*)
       nop
       add       rsp,6B0
       pop       rbx
       pop       rbp
       pop       rsi
       pop       rdi
       pop       r14
       ret
M02_L03:
       cmp       qword ptr [rsp+698],0FFFFFFFFFFFFFFEA
       jl        short M02_L04
       cmp       qword ptr [rsp+698],16
       jg        short M02_L04
       mov       rcx,0
       cmp       [rsp+6A0],rcx
       ja        short M02_L04
       cmp       byte ptr [rsp+6AA],0
       jne       short M02_L04
       vmovdqu   xmm0,xmmword ptr [rsp+698]
       vmovdqu   xmmword ptr [rsp+350],xmm0
       mov       rcx,[rsp+6A8]
       mov       [rsp+360],rcx
       lea       rcx,[rsp+350]
       call      csFastFloat.FastDoubleParser.FastPath(csFastFloat.Structures.ParsedNumberString)
       nop
       add       rsp,6B0
       pop       rbx
       pop       rbp
       pop       rsi
       pop       rdi
       pop       r14
       ret
M02_L04:
       lea       rcx,[rsp+688]
       mov       rdx,[rsp+698]
       mov       r8,[rsp+6A0]
       call      csFastFloat.FastDoubleParser.ComputeFloat(Int64, UInt64)
       cmp       byte ptr [rsp+6AA],0
       je        short M02_L06
       mov       rbp,[rsp+688]
       mov       r14d,[rsp+690]
       mov       r8,[rsp+6A0]
       inc       r8
       lea       rcx,[rsp+678]
       mov       rdx,[rsp+698]
       call      csFastFloat.FastDoubleParser.ComputeFloat(Int64, UInt64)
       mov       r9,[rsp+678]
       mov       ecx,[rsp+680]
       cmp       rbp,r9
       jne       short M02_L05
       cmp       r14d,ecx
       setne     r9b
       movzx     r9d,r9b
       test      r9d,r9d
       je        short M02_L06
M02_L05:
       mov       dword ptr [rsp+690],0FFFFFFFF
M02_L06:
       cmp       dword ptr [rsp+690],0
       jge       short M02_L07
       movzx     r9d,bx
       lea       rcx,[rsp+368]
       mov       rdx,rsi
       mov       r8,rdi
       call      csFastFloat.Structures.DecimalInfo.parse_decimal(Char*, Char*, Char)
       lea       rsi,[rsp+688]
       lea       rcx,[rsp+40]
       lea       rdx,[rsp+368]
       mov       r8d,30C
       call      CORINFO_HELP_MEMCPY
       mov       rcx,rsi
       lea       rdx,[rsp+40]
       call      csFastFloat.FastDoubleParser.ComputeFloat(csFastFloat.Structures.DecimalInfo)
M02_L07:
       movzx     ecx,byte ptr [rsp+6A8]
       vmovupd   xmm0,[rsp+688]
       vmovupd   [rsp+30],xmm0
       lea       rdx,[rsp+30]
       call      csFastFloat.FastDoubleParser.ToFloat(Boolean, csFastFloat.Structures.AdjustedMantissa)
       nop
       add       rsp,6B0
       pop       rbx
       pop       rbp
       pop       rsi
       pop       rdi
       pop       r14
       ret
M02_L08:
       call      csFastFloat.FastDoubleParser.ThrowArgumentException()
       int       3
; Total bytes of code 513

; csFastFloat.Structures.ParsedNumberString.ParseNumberString(Char*, Char*, csFastFloat.Enums.chars_format, Char)
       push      r15
       push      r14
       push      rdi
       push      rsi
       push      rbp
       push      rbx
       sub       rsp,18
       vzeroupper
       mov       eax,[rsp+70]
       xor       r10d,r10d
       vxorps    xmm0,xmm0,xmm0
       vmovdqu   xmmword ptr [rsp],xmm0
       mov       [rsp+10],r10
       movzx     r10d,word ptr [rdx]
       cmp       r10d,2D
       sete      r11b
       movzx     r11d,r11b
       mov       [rsp+10],r11b
       cmp       r10d,2D
       je        short M03_L00
       cmp       r10d,2B
       jne       short M03_L02
M03_L00:
       add       rdx,2
       cmp       rdx,r8
       jne       short M03_L01
       vmovdqu   xmm0,xmmword ptr [rsp]
       vmovdqu   xmmword ptr [rcx],xmm0
       mov       rdx,[rsp+10]
       mov       [rcx+10],rdx
       jmp       near ptr M03_L30
M03_L01:
       movzx     r10d,word ptr [rdx]
       mov       r11d,r10d
       add       r11d,0FFFFFFD0
       cmp       r11d,9
       jbe       short M03_L02
       movzx     r11d,ax
       cmp       r10d,r11d
       je        short M03_L02
       vmovdqu   xmm0,xmmword ptr [rsp]
       vmovdqu   xmmword ptr [rcx],xmm0
       mov       rdx,[rsp+10]
       mov       [rcx+10],rdx
       jmp       near ptr M03_L30
M03_L02:
       mov       r10,rdx
       xor       r11d,r11d
M03_L03:
       cmp       rdx,r8
       je        short M03_L04
       movzx     esi,word ptr [rdx]
       add       esi,0FFFFFFD0
       cmp       esi,9
       ja        short M03_L04
       lea       r11,[r11+r11*4]
       mov       esi,esi
       lea       r11,[rsi+r11*2]
       add       rdx,2
       jmp       short M03_L03
M03_L04:
       mov       rsi,rdx
       mov       rdi,rsi
       sub       rdi,r10
       mov       rbx,rdi
       shr       rbx,3F
       add       rdi,rbx
       sar       rdi,1
       xor       ebx,ebx
       cmp       rsi,r8
       je        short M03_L07
       movzx     ebp,word ptr [rsi]
       movzx     r14d,ax
       cmp       ebp,r14d
       jne       short M03_L07
       lea       rdx,[rsi+2]
M03_L05:
       cmp       rdx,r8
       je        short M03_L06
       movzx     ebx,word ptr [rdx]
       add       ebx,0FFFFFFD0
       cmp       ebx,9
       ja        short M03_L06
       movzx     ebx,bl
       add       rdx,2
       lea       r11,[r11+r11*4]
       mov       ebx,ebx
       lea       r11,[rbx+r11*2]
       jmp       short M03_L05
M03_L06:
       lea       rbx,[rsi+2]
       sub       rbx,rdx
       mov       rbp,rbx
       shr       rbp,3F
       add       rbx,rbp
       sar       rbx,1
       sub       rdi,rbx
M03_L07:
       test      rdi,rdi
       jne       short M03_L08
       vmovdqu   xmm0,xmmword ptr [rsp]
       vmovdqu   xmmword ptr [rcx],xmm0
       mov       r9,[rsp+10]
       mov       [rcx+10],r9
       jmp       near ptr M03_L30
M03_L08:
       xor       ebp,ebp
       mov       r14d,r9d
       and       r14d,1
       cmp       r14d,1
       jne       near ptr M03_L17
       cmp       rdx,r8
       je        near ptr M03_L17
       movzx     r15d,word ptr [rdx]
       cmp       r15d,65
       je        short M03_L09
       cmp       r15d,45
       jne       near ptr M03_L17
M03_L09:
       add       rdx,2
       xor       r14d,r14d
       cmp       rdx,r8
       je        short M03_L10
       cmp       word ptr [rdx],2D
       jne       short M03_L10
       mov       r14d,1
       add       rdx,2
       jmp       short M03_L11
M03_L10:
       cmp       rdx,r8
       je        short M03_L11
       cmp       word ptr [rdx],2B
       jne       short M03_L11
       add       rdx,2
M03_L11:
       cmp       rdx,r8
       je        short M03_L12
       movzx     r15d,word ptr [rdx]
       add       r15d,0FFFFFFD0
       cmp       r15d,9
       jbe       short M03_L13
M03_L12:
       cmp       r9d,2
       je        near ptr M03_L18
       vmovdqu   xmm0,xmmword ptr [rsp]
       vmovdqu   xmmword ptr [rcx],xmm0
       mov       rdx,[rsp+10]
       mov       [rcx+10],rdx
       jmp       near ptr M03_L30
M03_L13:
       cmp       rdx,r8
       je        short M03_L15
       movzx     r9d,word ptr [rdx]
       add       r9d,0FFFFFFD0
       cmp       r9d,9
       ja        short M03_L15
       movzx     r9d,r9b
       cmp       rbp,10000
       jge       short M03_L14
       lea       rbp,[rbp+rbp*4]
       mov       r9d,r9d
       lea       rbp,[r9+rbp*2]
M03_L14:
       add       rdx,2
       jmp       short M03_L13
M03_L15:
       test      r14d,r14d
       je        short M03_L16
       neg       rbp
M03_L16:
       add       rbx,rbp
       jmp       short M03_L18
M03_L17:
       cmp       r14d,1
       jne       short M03_L18
       test      r9b,2
       jne       short M03_L18
       vmovdqu   xmm0,xmmword ptr [rsp]
       vmovdqu   xmmword ptr [rcx],xmm0
       mov       r10,[rsp+10]
       mov       [rcx+10],r10
       jmp       near ptr M03_L30
M03_L18:
       mov       byte ptr [rsp+11],1
       cmp       rdi,13
       jle       near ptr M03_L29
       mov       rdx,r10
       jmp       short M03_L21
M03_L19:
       cmp       r9d,30
       jne       short M03_L20
       dec       rdi
M03_L20:
       add       rdx,2
M03_L21:
       cmp       rdx,r8
       je        short M03_L22
       movzx     r9d,word ptr [rdx]
       cmp       r9d,30
       je        short M03_L19
       movzx     r14d,ax
       cmp       r9d,r14d
       je        short M03_L19
M03_L22:
       cmp       rdi,13
       jle       near ptr M03_L29
       mov       byte ptr [rsp+12],1
       xor       r11d,r11d
       mov       rdx,r10
       jmp       short M03_L24
M03_L23:
       mov       rax,0B6B3A7640000
       cmp       r11,rax
       jae       short M03_L25
M03_L24:
       cmp       rdx,r8
       je        short M03_L25
       movzx     eax,word ptr [rdx]
       add       eax,0FFFFFFD0
       cmp       eax,9
       ja        short M03_L25
       lea       r11,[r11+r11*4]
       mov       eax,eax
       lea       r11,[rax+r11*2]
       add       rdx,2
       jmp       short M03_L23
M03_L25:
       mov       rax,0B6B3A7640000
       cmp       r11,rax
       jb        short M03_L26
       sub       rsi,rdx
       mov       rdx,rsi
       shr       rdx,3F
       add       rdx,rsi
       sar       rdx,1
       lea       rbx,[rdx+rbp]
       jmp       short M03_L29
M03_L26:
       add       rdx,2
       mov       rbx,rdx
M03_L27:
       mov       rax,0B6B3A7640000
       cmp       r11,rax
       jae       short M03_L28
       cmp       rdx,r8
       je        short M03_L28
       movzx     eax,word ptr [rdx]
       add       eax,0FFFFFFD0
       cmp       eax,9
       ja        short M03_L28
       lea       r11,[r11+r11*4]
       mov       eax,eax
       lea       r11,[rax+r11*2]
       add       rdx,2
       jmp       short M03_L27
M03_L28:
       sub       rbx,rdx
       mov       rax,rbx
       shr       rax,3F
       add       rbx,rax
       sar       rbx,1
       add       rbx,rbp
M03_L29:
       mov       [rsp],rbx
       mov       [rsp+8],r11
       vmovdqu   xmm0,xmmword ptr [rsp]
       vmovdqu   xmmword ptr [rcx],xmm0
       mov       rax,[rsp+10]
       mov       [rcx+10],rax
M03_L30:
       mov       rax,rcx
       add       rsp,18
       pop       rbx
       pop       rbp
       pop       rsi
       pop       rdi
       pop       r14
       pop       r15
       ret
; Total bytes of code 842

; csFastFloat.FastDoubleParser.FastPath(csFastFloat.Structures.ParsedNumberString)
       vzeroupper
       mov       rax,[rcx+8]
       vxorps    xmm0,xmm0,xmm0
       vcvtsi2sd xmm0,xmm0,rax
       test      rax,rax
       jge       short M04_L00
       vaddsd    xmm0,xmm0,qword ptr [7FFA9B3852A0]
M04_L00:
       mov       rax,[rcx]
       test      rax,rax
       jge       short M04_L01
       neg       rax
       mov       rdx,1784F1D7998
       mov       rdx,[rdx]
       cmp       [rdx],edx
       add       rdx,10
       vdivsd    xmm0,xmm0,[rdx+rax*8]
       jmp       short M04_L02
M04_L01:
       mov       rdx,1784F1D7998
       mov       rdx,[rdx]
       cmp       [rdx],edx
       add       rdx,10
       vmulsd    xmm0,xmm0,qword ptr [rdx+rax*8]
M04_L02:
       cmp       byte ptr [rcx+10],0
       je        short M04_L03
       vmovsd    xmm1,qword ptr [7FFA9B3852B0]
       vxorps    xmm0,xmm0,xmm1
M04_L03:
       ret
; Total bytes of code 109

; csFastFloat.FastDoubleParser.ComputeFloat(Int64, UInt64)
       push      rdi
       push      rsi
       sub       rsp,38
       vzeroupper
       mov       rax,rcx
       vxorps    xmm0,xmm0,xmm0
       vmovdqu   xmmword ptr [rsp+28],xmm0
       test      r8,r8
       je        short M05_L00
       cmp       rdx,0FFFFFFFFFFFFFEAA
       jge       short M05_L01
M05_L00:
       xor       edx,edx
       mov       [rax],rdx
       mov       [rax+8],edx
       jmp       near ptr M05_L13
M05_L01:
       cmp       rdx,134
       jle       short M05_L02
       mov       dword ptr [rsp+30],7FF
       xor       r8d,r8d
       mov       [rsp+28],r8
       vmovdqu   xmm0,xmmword ptr [rsp+28]
       vmovdqu   xmmword ptr [rax],xmm0
       jmp       near ptr M05_L13
M05_L02:
       xor       ecx,ecx
       lzcnt     rcx,r8
       mov       r9d,ecx
       mov       ecx,r9d
       shl       r8,cl
       mov       [rsp+58],rdx
       lea       ecx,[rdx*2+2AC]
       mov       r10,1784F1D79A8
       mov       r10,[r10]
       cmp       [r10],r10d
       add       r10,10
       mov       r11d,ecx
       mov       r10,[r10+r11*8]
       lea       r11,[rsp+10]
       mov       rdx,r8
       mulx      rdx,rsi,r10
       mov       [r11],rsi
       mov       r10,[rsp+10]
       mov       [rsp+18],r10
       mov       [rsp+20],rdx
       mov       rdx,[rsp+20]
       and       edx,1FF
       cmp       edx,1FF
       jne       short M05_L03
       mov       rdx,1784F1D79A8
       mov       rdx,[rdx]
       cmp       [rdx],edx
       add       rdx,10
       inc       ecx
       mov       ecx,ecx
       mov       rcx,[rdx+rcx*8]
       lea       r10,[rsp+8]
       mov       rdx,r8
       mulx      rcx,r11,rcx
       mov       [r10],r11
       lea       rdx,[rsp+18]
       add       [rdx],rcx
       cmp       rcx,[rsp+18]
       jbe       short M05_L03
       lea       rcx,[rsp+20]
       inc       qword ptr [rcx]
M05_L03:
       mov       rdx,[rsp+18]
       mov       r8,[rsp+20]
       cmp       rdx,0FFFFFFFFFFFFFFFF
       jne       short M05_L05
       mov       r10,[rsp+58]
       cmp       r10,0FFFFFFFFFFFFFFE5
       jl        short M05_L04
       cmp       r10,37
       setle     cl
       movzx     ecx,cl
       test      ecx,ecx
       mov       [rsp+58],r10
       jne       short M05_L05
M05_L04:
       mov       dword ptr [rsp+30],0FFFFFFFF
       vmovdqu   xmm0,xmmword ptr [rsp+28]
       vmovdqu   xmmword ptr [rax],xmm0
       jmp       near ptr M05_L13
M05_L05:
       mov       rcx,r8
       shr       rcx,3F
       mov       r11d,ecx
       lea       esi,[r11+9]
       and       esi,3F
       mov       ecx,esi
       mov       rdi,r8
       shr       rdi,cl
       mov       [rsp+28],rdi
       mov       r10,[rsp+58]
       imul      ecx,r10d,3526A
       sar       ecx,10
       lea       ecx,[rcx+r11+3F]
       sub       ecx,r9d
       add       ecx,3FF
       mov       [rsp+30],ecx
       cmp       dword ptr [rsp+30],0
       jg        near ptr M05_L09
       mov       ecx,[rsp+30]
       neg       ecx
       inc       ecx
       cmp       ecx,40
       jl        short M05_L06
       xor       ecx,ecx
       mov       [rsp+30],ecx
       mov       [rsp+28],rcx
       vmovdqu   xmm0,xmmword ptr [rsp+28]
       vmovdqu   xmmword ptr [rax],xmm0
       jmp       near ptr M05_L13
M05_L06:
       lea       rdx,[rsp+28]
       shr       qword ptr [rdx],cl
       lea       r10,[rsp+28]
       mov       rcx,[rsp+28]
       and       rcx,1
       add       [r10],rcx
       lea       rcx,[rsp+28]
       shr       qword ptr [rcx],1
       lea       rcx,[rsp+28]
       mov       r8,0
       cmp       [rsp+28],r8
       jb        short M05_L07
       mov       edx,1
       jmp       short M05_L08
M05_L07:
       xor       edx,edx
M05_L08:
       mov       [rcx+8],edx
       vmovdqu   xmm0,xmmword ptr [rsp+28]
       vmovdqu   xmmword ptr [rax],xmm0
       jmp       near ptr M05_L13
M05_L09:
       cmp       rdx,1
       ja        short M05_L10
       cmp       r10,0FFFFFFFFFFFFFFFC
       jl        short M05_L10
       cmp       r10,17
       jg        short M05_L10
       mov       rcx,[rsp+28]
       and       ecx,3
       cmp       ecx,1
       jne       short M05_L10
       mov       rdx,[rsp+28]
       mov       ecx,esi
       shl       rdx,cl
       cmp       rdx,r8
       jne       short M05_L10
       lea       rdx,[rsp+28]
       and       qword ptr [rdx],0FFFFFFFFFFFFFFFE
M05_L10:
       lea       rdx,[rsp+28]
       mov       rcx,[rsp+28]
       and       rcx,1
       add       [rdx],rcx
       lea       rdx,[rsp+28]
       shr       qword ptr [rdx],1
       mov       rdx,0
       cmp       [rsp+28],rdx
       jb        short M05_L11
       mov       rdx,0
       mov       [rsp+28],rdx
       lea       rdx,[rsp+30]
       inc       dword ptr [rdx]
M05_L11:
       lea       rdx,[rsp+28]
       mov       rcx,0FFFFFFFFFFFF
       and       [rdx],rcx
       cmp       dword ptr [rsp+30],7FF
       jl        short M05_L12
       mov       dword ptr [rsp+30],7FF
       xor       edx,edx
       mov       [rsp+28],rdx
M05_L12:
       vmovdqu   xmm0,xmmword ptr [rsp+28]
       vmovdqu   xmmword ptr [rax],xmm0
M05_L13:
       add       rsp,38
       pop       rsi
       pop       rdi
       ret
; Total bytes of code 703

; csFastFloat.FastDoubleParser.ToFloat(Boolean, csFastFloat.Structures.AdjustedMantissa)
       vzeroupper
       mov       rax,[rdx]
       mov       edx,[rdx+8]
       shl       rdx,34
       or        rax,rdx
       test      cl,cl
       jne       short M06_L00
       mov       rdx,rax
       jmp       short M06_L01
M06_L00:
       mov       rdx,0
       or        rdx,rax
M06_L01:
       vmovq     xmm0,rdx
       ret
; Total bytes of code 44

Method was not JITted yet.
csFastFloat.FastDoubleParser.g__ThrowArgumentNull|4_0()

There's some room for improvement (on the JIT-side). Some stack-work could be reduced (note: there are already work-items addressing this).


Use splice to avoid copying data between kernel and user space

Where does this happen? FUSE or storage engine or other position?

Where does this happen? FUSE or storage engine or other position?

Storage engine. When we read data from the file, we can transfer them to a socket that doesn't need to copy data from kernel space to user space.


Add support for decimal types in HiveTypeParser

Add support for decimal types in HiveTypeParser.
Enable HiveTypeParserTest.
Use VELOX_CHECK, VELOX_FAIL in HiveTypeParser.

@Yuhta can you help review this? I am starting to add Decimal Type support for the Parquet Native Reader and want to add incremental changes. This change is required to add a decimal test to the E2EFilterTest.cpp. Thanks.

@majetideepak The tests are failing

@Yuhta The tests are now passing. Thanks for the help with the merge.

@Yuhta any internal test failures due to this PR?

There are someone catching std::invalid_argument explicitly, I can fix it for them though, no worry


ddosify: 0.8.1 -> 0.8.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/ddosify/ddosify/releases.
meta.description for ddosify is: "High-performance load testing tool, written in Golang"
meta.homepage for ddosify is: "https://ddosify.com/"
meta.changelog for ddosify is: "https://github.com/ddosify/ddosify/releases/tag/v0.8.2"
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.8.2 with grep in /nix/store/2505pj4zcp1kg9jwljcb0a53vgd0i6b0-ddosify-0.8.2
found 0.8.2 in filename of file in /nix/store/2505pj4zcp1kg9jwljcb0a53vgd0i6b0-ddosify-0.8.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
ddosify

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2505pj4zcp1kg9jwljcb0a53vgd0i6b0-ddosify-0.8.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A ddosify https://github.com/r-ryantm/nixpkgs/archive/4bb29bcb0f9bc8a90ea3c7f93969e0ad7071609d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2505pj4zcp1kg9jwljcb0a53vgd0i6b0-ddosify-0.8.2
ls -la /nix/store/2505pj4zcp1kg9jwljcb0a53vgd0i6b0-ddosify-0.8.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

ddosify

Maintainer pings
cc @bryanasdev000 for testing.

Result of nixpkgs-review pr 190000 run on x86_64-linux 1

1 package built:

ddosify


FEAT: Edb cfg export cutout

export cutout to json
new method edb.layout.find_primitive
separate test for edb.layout

@svandenb-dev I updated the code according to your comments. Please add your comments as one review comment next time.


Use Flow type system?

Since we (supposedly) build secure software, we need to worry about type safety everywhere (including the client), and allow to take care of type safety for developers using the client. Flow seems like a straightforward way to accomplish this; although there are some alternatives (e.g., TypeScript or Elm, or even compiling Rust code directly to wasm or asm.js).
@DenisKolodin Do you think Elm would be an optimal way to pursue? I'm a bit worried that a "fully" functional Elm's approach can have certain performance implications. For example, the tutorial on lists does not seem to unroll recursion, not even in the tail-form (i.e.,
length : List a -> Int
length list = length2 list 0

length2 : List a -> Int -> Int
length2 list acc =
  case list of
    [] ->
        acc
    first :: rest ->
        length2 rest 1 + acc

so it doesn't work with lists of length more than several thousand. Am I doing something wrong, or is this just how Elm rolls (heh)? Also, in general it seems Flow is a bit more supported than Elm, although I may be biased.

@slowli Elm is awesome for large web-applications, but it's unsuitable for CPU-bound tasks like cryptography algorithms, because Elm produces smart wrappers to maintain functional features. For example Elm generates the following code for Exonum.newMessage binding:
var _exonum$exonum_ico_client$Bind_Exonum$newMessage = function (declaration) {
	var struct = A2(
		_elm_lang$core$Json_Decode$decodeValue,
		_elm_lang$core$Json_Decode$value,
		_elm_lang$core$Json_Encode$object(
			{
				ctor: '::',
				_0: {
					ctor: '_Tuple2',
					_0: 'size',
					_1: _elm_lang$core$Json_Encode$int(declaration.size)
				},
				_1: {
					ctor: '::',
					_0: {
						ctor: '_Tuple2',
						_0: 'network_id',
						_1: _elm_lang$core$Json_Encode$int(declaration.networkId)
					},
					_1: {
						ctor: '::',
						_0: {
							ctor: '_Tuple2',
							_0: 'protocol_version',
							_1: _elm_lang$core$Json_Encode$int(declaration.protocolVersion)
						},
						_1: {
							ctor: '::',
							_0: {
								ctor: '_Tuple2',
								_0: 'service_id',
								_1: _elm_lang$core$Json_Encode$int(declaration.serviceId)
							},
							_1: {
								ctor: '::',
								_0: {
									ctor: '_Tuple2',
									_0: 'message_id',
									_1: _elm_lang$core$Json_Encode$int(declaration.messageId)
								},
								_1: {
									ctor: '::',
									_0: {
										ctor: '_Tuple2',
										_0: 'fields',
										_1: _exonum$exonum_ico_client$Bind_Exonum$serializeFields(declaration.fields)
									},
									_1: {ctor: '[]'}
								}
							}
						}
					}
				}
			}));
	var _p4 = struct;
	if (_p4.ctor === 'Ok') {
		return _exonum$exonum_ico_client$Native_Exonum.newMessage(_p4._0);
	} else {
		return _elm_lang$core$Native_Utils.crashCase(
			'Bind.Exonum',
			{
				start: {line: 116, column: 9},
				end: {line: 118, column: 45}
			},
			_p4)(_p4._0);
	}
};

//// BASIC STUFF ////

function F2(fun)
{
  function wrapper(a) { return function(b) { return fun(a,b); }; }
  wrapper.arity = 2;
  wrapper.func = fun;
  return wrapper;
}

function A2(fun, a, b)
{
  return fun.arity === 2
    ? fun.func(a, b)
    : fun(a)(b);
}
// ...
function A9(fun, a, b, c, d, e, f, g, h, i)
{
  return fun.arity === 9
    ? fun.func(a, b, c, d, e, f, g, h, i)
    : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
}

//// LIST STUFF ////

var Nil = { ctor: '[]' };

function Cons(hd, tl)
{
	return {
		ctor: '::',
		_0: hd,
		_1: tl
	};
}

function append(xs, ys)
{
	// append Strings
	if (typeof xs === 'string')
	{
		return xs + ys;
	}

	// append Lists
	if (xs.ctor === '[]')
	{
		return ys;
	}
	var root = Cons(xs._0, Nil);
	var curr = root;
	xs = xs._1;
	while (xs.ctor !== '[]')
	{
		curr._1 = Cons(xs._0, Nil);
		xs = xs._1;
		curr = curr._1;
	}
	curr._1 = ys;
	return root;
}

Elm, TypeScript and other JavaScript transpilers adds quite overhead to every function call (however I feel that every transpiler result suits good for JIT compiler).
Flow seems better for me: we still have raw (high-speed) JavaScript code, but we get a powerful type checking.
Also we need to try Rust-to-wasm approach. It looks ultimate, but I have no idea about its performance.

Just came here to mention rust-to-wasm, but it is already here. 😆
So, I decided to publish my experiments with Rust-WebAssembly approach here: it is stripped duct-taped version of exonum core. may be it will help to start assessing this approach.
Good thing about this approach is that one can share it's types and message definitions.
Bad thing is that Rust and WebAssembly story isn't complete yet.
Anyway, I believe that Rust-WebAssembly approach is worth exploring.

I suppose it is worth creating a separate issue about WebAssembly.

@DarkEld3r Do you mean here or in exonum-core?

@pepyakin I suppose it is more related to the "exonum-client".

@DenisKolodin I do not think it's correct to compare Elm and Typescript (or Flow). While the former is a full-blown language targeting web that gets transpiled to JS (much like, say, Dart), the latter performs static type checks.  TS leaves no trace of itself after transpilation producing a pure JS code free of any run-time type checks.
I personally favor TS mainly due to its design goals and the fact that TS lives up to them.


fix(deps): update dependency aws-amplify to v5

This PR contains the following updates:

Package
Type
Update
Change
Pending

aws-amplify (source)
dependencies
major
^4.3.43 -> ^5.0.0
5.2.3

Release Notes

aws-amplify/amplify-js
v5.2.2: 2023-05-18 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Added Next.js App Router canaries by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11360
chore(predictions): add missing buffer dependency by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11377
release: Amplify JS release by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11385

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.2.1: 2023-05-11 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Add NPM duplicate dependency check to canaries by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11333
feature: Enable rollback infrastructure by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11332
feat(core): refactor signer implementation to remove polyfill by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11319
feat: Add Snyk security scanning by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11285
chore: Fixed NextJS canary configuration by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11356
feat(data): refactor single-client consecutive update unit tests; fake GraphQL service updates by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11349
fix(core): add URL polyfill for signer in react native by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11362
release: Amplify JS release by @Samaritan1011001 in https://github.com/aws-amplify/amplify-js/pull/11366

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.2.0: 2023-05-04 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

feat(core): Use lerna prepublishOnly version npm publish and use the … by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11301
feat(aws-amplify): Bump the aws-amplify minor version by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11327
DataStore unit tests for observed rapid single-field mutations with variable connection latencies; add monitoring to fake GraphQL service for in-flight mutations and subscriptions; add helpers for updating artificial testing latencies by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11312
release(required): Amplify JS release by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11339

Full Changelog<EMAIL_ADDRESS>v5.1.4: 2023-04-27 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix(data): sync processor fixes by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11262
updated storage config type doc by @haverchuck in https://github.com/aws-amplify/amplify-js/pull/11282
feat(data): add simulated cloud latency to fake GraphQL service; sync processor updates by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11286
fix(datastore): add missing errorHandler errors for sync and mutation unauth responses  by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11290
Amplify JS release by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11315

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.1.3: 2023-04-20 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Doc updates & layout fixes by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11244
chore: Remove XR category from repo by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11248
feat: add github action to automatically remove pending-response label by @josefaidt in https://github.com/aws-amplify/amplify-js/pull/10499
chore: Enable automatic API doc generation by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11268
chore: Amplify JS Release by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11276

New Contributors

@josefaidt made their first contribution in https://github.com/aws-amplify/amplify-js/pull/10499

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.1.2: 2023-04-17 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix: update lerna config to fix build by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11235
fix(notifications): Fix permissions type by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11237
chore: fixed typo in Auth.verifyTotpToken log by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/11249
Test/pn sync init by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11250
fix(notifications): Support use_frameworks! by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11253
fix(data): sync processor, fake GraphQL service, and unit test fixes. Update sync processor to log errors on retry; update fake GraphQL service to extract singular name of model when parsing queries, and update broken RegEx; update connectivity handling unit test to fail on all errors by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11261

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.1.1
Compare Source
v5.1.0: 2023-04-12 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

Remove unnecessary error.log by @johnf in https://github.com/aws-amplify/amplify-js/pull/11084
feat(storage): add validateObjectExistence option in Get API by @kvramyasri7 in https://github.com/aws-amplify/amplify-js/pull/11154
Push notification re-implementation by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11214

Adds a new React Native native module for supporting Amplify Push Notifications
Push Notification APIs are now accessed via the Notifications category under Amplify
Adds support for Android API 33+ notification permission request
Adds support for running background tasks triggered by notifications
Adds ability to receive tokens on app launch
Adds ability to set/get badge counts (iOS only)
To learn more, refer to Amplify Documentation

New Contributors

@HuiSF made their first contribution in https://github.com/aws-amplify/amplify-js/pull/10973
@johnf made their first contribution in https://github.com/aws-amplify/amplify-js/pull/11084

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.25: 2023-04-06 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix(@aws-amplify/datastore): Remove extra null fields on create mutations by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11171
chore: Updated codeowners to require admin approval for changes to aws-amplify/package.json by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11191
fix: query on null fields to not throw error by @dpilch in https://github.com/aws-amplify/amplify-js/pull/11185
fix(data): fix establishRelationAndKeys util to not attempt to add duplicate indices for belongsTo relationships (#11187) by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11192
chore: Docs updates by @erinleigh90 in https://github.com/aws-amplify/amplify-js/pull/11198
chore: Release process by @erinleigh90 in https://github.com/aws-amplify/amplify-js/pull/11199

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.24: Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Remove link to discussions in auto-lock message and updated discord related messaging by @nadetastic in https://github.com/aws-amplify/amplify-js/pull/11127
fix: trigger sync on websocket disruption by @dpilch in https://github.com/aws-amplify/amplify-js/pull/11100
fix(datastore): normalize deleteTraverse by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11169
chore: Added duplicate dependency detection script by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11180
fix(deps): update AWS SDK clients with fast-xml-parser dependency by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11181
chore: Empty-Commit to rev preid by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11186
chore: Release process by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11182

New Contributors

@nadetastic made their first contribution in https://github.com/aws-amplify/amplify-js/pull/11127

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.23: 2023-03-30 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix(@aws-amplify/datastore): mutation hub event drops during reconnect by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11132
fix(@aws-amplify/datastore): adds serialization for empty predicates by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11133
Update config.yml by @tannerabread in https://github.com/aws-amplify/amplify-js/pull/11117
fix(pubsub): Topic symbol access regress by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11151
fix: Codescanning alerts by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11159
fix(datastore): normalize deleteTraverse 1:M by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11160
chore: Docs updates by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11162
Revert "fix(datastore): normalize deleteTraverse 1:M" by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11164
chore: Release process by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11165

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.22: 2023-03-23 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

test: increase coverage for delete connection by model field by @dpilch in https://github.com/aws-amplify/amplify-js/pull/11099
feat(cognito): remove required domain parameter in CookieStorage constructor by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11016
fix(datastore): stale observeQuery snapshot with sort param by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11119
chore: Docs updates by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/11129
Amplify JS Release by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/11130

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.21: 2023-03-21 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore(@aws-amplify/datastore): initial decomposition of test helpers by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11096
fix: add warning message when trying to use SQLite with CPK enabled by @dpilch in https://github.com/aws-amplify/amplify-js/pull/11027
chore(deps): bump activesupport from <IP_ADDRESS> to <IP_ADDRESS> in /docs by @dependabot in https://github.com/aws-amplify/amplify-js/pull/11094
fix(data): update SQLite utils to use 'instr' instead of 'like' when constructing WHERE conditions from predicates by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11108
chore: Docs updates by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/11111
Amplify JS Release by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/11112

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.20: 2023-03-16 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

refactor(datastore): storage adapters by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11073
chore: Docs updates by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11091
chore: Tweaked main pre-id. by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11093
Amplify JS Release by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11092

Full Changelog<EMAIL_ADDRESS>v5.0.19: 2023-03-13 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix: Run ts coverage check with test by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/11047
fix(datastore): add fallback catch case for misc. bad input by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11061
chore(@aws-amplify/datastore): remove handful of as any casts by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11053
test(integ): Disable Vue Interactions Firefox test by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11065
Test next js auth by @erinleigh90 in https://github.com/aws-amplify/amplify-js/pull/10995
chore: Docs updates by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11082
Amplify JS Release by @cshfang in https://github.com/aws-amplify/amplify-js/pull/11083

Full Changelog<EMAIL_ADDRESS>v5.0.18: 2023-03-07 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore(@aws-amplify/datastore): docstrings, small refactors, cleanup unused predicate function by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11040
feat(datastore): add support for AppSync RTF by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11000
fix(datastore): rtf errorType conditional by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/11056
Fix: Removed the XR package from aws-amplify by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11055
fix(@aws-amplify/auth): Verify totp hub event by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/11049
Amplify JS Release by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11057

Full Changelog<EMAIL_ADDRESS>v5.0.17: 2023-03-06 Amplify JS release - aws -<EMAIL_ADDRESS>Compare Source
What's Changed

feat(data): add E2E tests for DataStore docs examples by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/11031
fix(datastore): remove connections with model field as undefined by @dpilch in https://github.com/aws-amplify/amplify-js/pull/10983
feat(pubsub): Typescript improvements and cleanup by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10954
Call errorCallback on error in _initializeUploadTask by @Pickleboyonline in https://github.com/aws-amplify/amplify-js/pull/10968
Add NodeJS and Yarn version recommendations in CONTRIBUTING.md by @MixMasterT in https://github.com/aws-amplify/amplify-js/pull/10837
fix(@aws-amplify/datastore): strictly define null vs undefined behavior on models by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11009
chore: Docs updates by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/11044
Amplify JS release by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/11045

New Contributors

@MixMasterT made their first contribution in https://github.com/aws-amplify/amplify-js/pull/10837

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.16: 2023-02-23 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Cleaned up publish targets & prep for next by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10993
chore: Make XR package private & prevent publication by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/11001
chore: Add next as releasable branch & cleanup old ones. by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10994
fix(auth): sends current user with attributes to hub by @haverchuck in https://github.com/aws-amplify/amplify-js/pull/10947
fix(@aws-amplify/datastore): fix for queries against numeric indexes in IDB by @svidgen in https://github.com/aws-amplify/amplify-js/pull/11019
fix(analytics): personalize typo by @tannerabread in https://github.com/aws-amplify/amplify-js/pull/10965
Fix AWSS3ProviderManagedUpload.ts Type Mis-Match by @joesilveira in https://github.com/aws-amplify/amplify-js/pull/10988
chore: Docs updates by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11024
Amplify JS Release by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/11025

New Contributors

@joesilveira made their first contribution in https://github.com/aws-amplify/amplify-js/pull/10988

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.15: 2023-02-16 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore(docs): updated api docs by @haverchuck in https://github.com/aws-amplify/amplify-js/pull/10984
chore: Added more XR deprecation warnings by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10977
chore: update build script to webpack 5 by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10706
ci: pin verdaccio image version by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/10975
fix(@aws-amplify/datastore): extra fields in selective sync selection set on API's from older CLI by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10949
fix(@aws-amplify/datastore): Fix beginsWith() negation by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10962
chore: update docs dependencies by @israx in https://github.com/aws-amplify/amplify-js/pull/10964
feat(data): add Microsoft Edge testing; update WebKit Docker image by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10917

v5.0.14: 2023-02-09 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

bug(analytics): Remove timestamp property from MediaAutoTrack by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10933
fix: prevent double full sync at start by @dpilch in https://github.com/aws-amplify/amplify-js/pull/10923
fix: preid change by @israx in https://github.com/aws-amplify/amplify-js/pull/10960
fix: change preid to -v5 by @israx in https://github.com/aws-amplify/amplify-js/pull/10961
chore: Improve Sumerian XR error handling by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10946
Amplify JS release  by @israx in https://github.com/aws-amplify/amplify-js/pull/10963

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.13: 2023-02-08 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

Update push notification to support Android SDK 31+ by @cshfang in https://github.com/aws-amplify/amplify-js/pull/10914
chore: Add clean:bundle commands & update limits by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10928
fix(@aws-amplify/datastore): strictly define null vs undefined behavior on models by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10915
Revert "fix(@aws-amplify/datastore): strictly define null vs undefined behavior on models" by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10931
chore: delete bug-report-helper by @israx in https://github.com/aws-amplify/amplify-js/pull/10937
fix(@aws-amplify/datastore): strictly define null vs undefined behavior on models by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10932
Revert "fix(@aws-amplify/datastore): strictly define null vs undefined behavior on models" by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10939
chore(deps): bump commonmarker from 0.23.6 to 0.23.7 in /docs by @dependabot in https://github.com/aws-amplify/amplify-js/pull/10902
chore: Update XR deprecation messaging by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10940
Dependabot/bundler/docs/activesupport <IP_ADDRESS> by @israx in https://github.com/aws-amplify/amplify-js/pull/10942
Amplify JS release by @israx in https://github.com/aws-amplify/amplify-js/pull/10944

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.12: 2023-01-30 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

feature: Enable bundle size checks in CircleCI by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10876
chore: Updated bundle size debugging documantation & datastore limits by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10890
feat(data): add WebKit testing by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10884
feat: allow withCredentials on graphql requests by @dpilch in https://github.com/aws-amplify/amplify-js/pull/10796
feat(data): add Vite + DataStore integ tests to Circle CI config by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10483
feat(data): add vanilla JS + Webpack 4 DataStore E2E test by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10894
chore(XR): add deprecation warnings by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/10897
chore: Align datastore UUID dependency with rest of repo. by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10899
feat(data): add Rollup + DataStore E2E tests by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10895
chore: Docs updates by @erinleigh90 in https://github.com/aws-amplify/amplify-js/pull/10909
Amplify JS Release by @erinleigh90 in https://github.com/aws-amplify/amplify-js/pull/10907

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.11: 2022-01-19 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Cleaned up unused bundle size action by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10868
fix(core): undefined window bug with setItem on server by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10871
feature(@aws-amplify/datastore): IndexedDB query, nested predicate optimization by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10734
chore: Update bundle size limits to reflect latest improvements by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10878
chore: inc idb time clamps in tests due to CI slowness by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10879
test cypress 12 upgrade by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10778
fix(datastore): cascade deleted for nested Has Many by @iartemiev in https://github.com/aws-amplify/amplify-js/pull/10880
Amplify JS release by @erinleigh90 in https://github.com/aws-amplify/amplify-js/pull/10883

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.10: 2023-01-13 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix: Remove unhandled promise rejection for _verifyFileSize() by @Pickleboyonline in https://github.com/aws-amplify/amplify-js/pull/9763
feature: Basic bundle-size checks by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10807
fix: Patch paho-mqtt to apply fix for bug when cookies are disabled by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10841
fix: session cookies when SSR config enabled by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10831
feat(storage): auto double part size when body exceeds 10k parts by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10820
chore(storage): Apply fixes from merged PR by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10859
Amplify JS release by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10862

New Contributors

@Pickleboyonline made their first contribution in https://github.com/aws-amplify/amplify-js/pull/9763

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.9: 2023-01-09 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

Removes old AppSyncProvider to load automatically on PubSub by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/10840
chore: no-op commit to trigger CICD by @haverchuck in https://github.com/aws-amplify/amplify-js/pull/10843
Update preId for unstable release by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/10844
Preid fix for unstable v5 by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/10854
Amplify JS release by @israx in https://github.com/aws-amplify/amplify-js/pull/10853

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.8: 2022-12-27 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

feature: Add support for immediate flag when using Kinesis analytics providers by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10783
chore(issues): update auto-labeling by @tannerabread in https://github.com/aws-amplify/amplify-js/pull/10682
chore(deps): bump nokogiri from 1.13.9 to 1.13.10 in /docs by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10754
fix(amazon-cognito-identity-js): sets no-store header for cognito user pools by @haverchuck in https://github.com/aws-amplify/amplify-js/pull/10804

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.7: 2022-12-15 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix(auth): updated misconfigured dispatch by @MatthewChon in https://github.com/aws-amplify/amplify-js/pull/10511
fix(amazon-cognito-identity-js): specify the correct userAgent/deviceName when remembering devices (React Native) by @Samaritan1011001 in https://github.com/aws-amplify/amplify-js/pull/10724
chore: update main branch preid to unblock release by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10782

New Contributors

@MatthewChon made their first contribution in https://github.com/aws-amplify/amplify-js/pull/10511

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.6: 2022-12-14 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix(@aws-amplify/datastore): nextjs/swc broken build workaround by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10765
chore: Change preid for unstable by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/10770
fix(core): add cache-control header to cognito identity client  by @haverchuck  in https://github.com/aws-amplify/amplify-js/pull/10753
chore: log a warning when DataStore is ignoring an attempted PK update by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10756
fix(pubsub): AppSync in China regions by @DiscreteTom in https://github.com/aws-amplify/amplify-js/pull/10087
feat(auth): adds hub events to updateUserAttributes api  by @helgabalashova in https://github.com/aws-amplify/amplify-js/pull/10731

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.5: 2022-12-06 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

chore: Enable per-branch test suite execution in CircleCI by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10702
fix: Fixed invalid JS imports by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10716
test(integ): test UMD artifacts by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10704
fix(@aws-amplify/datastore-storage-adapter): SQLiteAdapter fails on required related models by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10720
chore: API Docs updates by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/10707
ci(datastore): add nested predicate integ tests by @dpilch in https://github.com/aws-amplify/amplify-js/pull/10619
chore: introduce CodeQL scan by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10725
chore: remove gltm.yml by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10726
Build/Chore - update peerDep graphql in line with other packages by @tessiselated in https://github.com/aws-amplify/amplify-js/pull/10729
fix(@aws-amplify/core): Use identityPoolRegion param correctly by @elorzafe in https://github.com/aws-amplify/amplify-js/pull/10709

New Contributors

@tessiselated made their first contribution in https://github.com/aws-amplify/amplify-js/pull/10729

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.4: 2022-11-22 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

fix: Storage interface types by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10696

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.3: 2022-11-18 Amplify JS release -<EMAIL_ADDRESS>Latest
Compare Source
What's Changed

fix(datastore): optional hasOne #10685 by @david-mcafee in https://github.com/aws-amplify/amplify-js/pull/10688
chore: Release from main by @chintannp in https://github.com/aws-amplify/amplify-js/pull/10692

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS>v5.0.2: 2022-11-16 Amplify JS release -<EMAIL_ADDRESS>Compare Source
What's Changed

docs: V5 breaking change README guidance by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10649
chore: add selective-sync-v5 tests to pipeline by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10637
fix: README grammer/wording by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10667
fix: README nit missed in last review by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10670
chore: Remove VSCode extension by @jimblanc in https://github.com/aws-amplify/amplify-js/pull/10668
fix reverse tabnabbing attack possibility by @chintannp in https://github.com/aws-amplify/amplify-js/pull/10675
fix(aws-amplify/auth): debouncing get user session calls by @AllanZhengYP in https://github.com/aws-amplify/amplify-js/pull/10654
fix: predicate logic against bools by @svidgen in https://github.com/aws-amplify/amplify-js/pull/10679
chore: Remove the next tag for publish release by @stocaaro in https://github.com/aws-amplify/amplify-js/pull/10680
chore: Release from main by @chintannp in https://github.com/aws-amplify/amplify-js/pull/10681

Full Changelog: https://github.com/aws-amplify/amplify-js/compare/aws-amplify<EMAIL_ADDRESS><EMAIL_ADDRESS>

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


feat: Add RbfProfileParameter

This is an initial implementation of RbfProfile parameter. It uses a basic RBF interpolation procedure.
It has the following missing features:

[ ] Implementation of TryFromV1Parameter.
[x] Implementation of VariableParameter.

Do we want to merge this without the implementation of TryFromV1Parameter? That's dependent on merging https://github.com/pywr/pywr-schema/pull/16

Do we want to merge this without the implementation of TryFromV1Parameter? That's dependent on merging pywr/pywr-schema#16

sorry, I missed that PR. Just had a look and approved it. Probably better to implement TryFromV1Parameter here?

This is now waiting on #66

I haven't test the TryFromV1Parameter implementation but it looks like it should work


incorrect error, mentioning a parameter that is not used while it is used

cfn-lint version: (cfn-lint --version)
cfn-lint 0.25.5
Description of issue.
incorrect error, mentioning a parameter that is not used while it is used
*Additional info
SourceEventTagFilter:
Type: String
.....
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Parameters:
- SourceEventTagFilter
Label:
default: Event source filtering
It seems that it does not see the resource when used as a parameter

@wjvanroosmalen in your example are you saying the Metadata section is using the Parameter?  You are correct as we aren't checking Metadata to see when a Parameter is used.  That being said is there a valid reason for having a Parameter and only mentioning it in the Metadata section?  It still seems like in this scenario we aren't using the parameter still.

It is A CF template that is a part of multiple CF deployments. I use the parameters as a setting for a change in a DynamoDB table made by a Lambda. The Lambda takes the metadata from the CF template. As a kind op parameter store solution but it gives more flexibility (especially cross-region)
Maybe its a niche situation and I understand why you would want to alarm users using more typical CF templates on this.

Yea I'm not sure I want ot change how that rule works but I do think there are a few options here.

We create a parameter for that rule so you can specify to ignore that rule.  This rule has come up a few times so I think there could be some value here for the work.  There are other dynamic template items that do similar things.
There is a long standing request to allow a YAML developer to specify exceptions with comments.  We haven't gotten far with that request but this has an outstanding issue.

For now you could also disable this rule just for that template to clean it up.


[bugfix] Change aspect ratio for local video tile to 16:9 to capture full camera view

What
LocalVideoTile modal aspect ratio changed to 16:9 to capture full camera view on desktop/landscape.
Teams also has their local video tile 16:9 on desktop with or without a camera being enabled.

Why
https://skype.visualstudio.com/SPOOL/_workitems/edit/3009419
left and right boundaries were being cropped from local video tile.
Can cause misinformation for the user on what is being captured and shared to others in the call.

How Tested

Process & policy checklist

[ ] I have updated the project documentation to reflect my changes if necessary.
[ ] I have read the CONTRIBUTING documentation.

Is this a breaking change?

[ ] This change causes current functionality to break.

Existing bug (not caused by this Pr just noticed it in the snapshot updates), the local tile should be in the horizontal gallery and not have a drop shadow:


DTLSConnection Id Support

I am submitting a …

[ ] bug report
[x] feature request

Description
Connection ID (CID) extension to DTLS is described in  RFC 9146 (or draft-ietf-tls-dtls-connection-id-05 for legacy version).
From the mbedtls ssl.h file:

The DTLS CID extension allows the reliable association of
DTLS records to DTLS connections across changes in the
underlying transport (changed IP and Port metadata) by
adding explicit connection identifiers (CIDs) to the
headers of encrypted DTLS records. The desired CIDs are
configured by the application layer and are exchanged in
new ClientHello / ServerHello extensions during the
handshake, where each side indicates the CID it wants the
peer to use when writing encrypted messages. The CIDs are
put to use once records get encrypted: the stack discards
any incoming records that don't include the configured CID
in their header, and adds the peer's requested CID to the
headers of outgoing messages.

The draft (or legacy) version is supported since mbedtls 2.18.0. However the "final" RFC 9146 version  is only supported from mbedtls version 3.3.0 onward. Unfortunately, the draft version is not compatible with the final version.
As python-mbeddtls is currently based on the 2.x version of mbedtls, I understand python-mbedtls needs to be ported to the 3.x virsion first. According to issue #46 from July 2021 moving to the 3.x version was in the planning for the future; maybe this could be a reason to make the future happen?
I am interested in helping to add CID support to python-mbedtls, but moving the project to version 3.x of mbedtls will be to much for me.
Current behavior
DTLS CID is not supported
Expected behavior
DTLS CID is supported

Mbedtls 3 support is in progress when I have time.
https://github.com/Synss/python-mbedtls/tree/mbedtls-3.x
It’s actually more work than I expected. I will most likely remove a lot of things from python-mbedtls to concentrate on TLS and DTLS only.


Reusing properties within a template

Currently it is not allowed to resuse a property in the same template, unless the different occurrences are connected to nested templates  instantiating different classes.  This leaves a gap for the need of using the same property  both for literal values and  for uri/ookups.
Example:
In property templates for  the http://rdaregistry.info/Elements/w/P10256 ("has subject") property, we would like to specify that both certain controlled term lists (not LD, so no URIs) as well as certain URI lookups  are allowed as value sources.
This would be OK if we could specify 2 occurrences  of the property, as literal and uri/lookup, respectively.  Is there any problem with allowing that?

The problem with allowing more than one property template to have the same property is that when Sinopia displays a resource, it doesn't know which field to display each object in, since both fields will have the same property -- more detail here
But as explained in the page linked to above, there are several disadvantages, including the one you just raised (which I should add to the page!) So this is something to look into in our next work cycle.
In fact, Sinopia used to allow a field to accept either a URI or a literal, but this became problematic, details here: https://github.com/LD4P/sinopia_editor/issues/2887


Update Genome assembly quality control

Changes to be made after proofreading by Christophe Klopp and Delphine Naquin:

[x] Slide 4: invert correctness and completeness
[x] Slide 7: introduce L50 in addition to N50, talk about contig size distribution
[ ] Slide 21: missing realignment of sequences on contigs to check that no pieces are missing. You can also look at the coverage along the contigs to see if there are areas that are more or less covered, indicating areas in multiple copies in the sequences but not in the assembly.
[x] Slide 24: on the illustration, it is not obvious why in the assembly there is a G while in the reads there are only A's or a deletion. The same goes for the G that follows, with 4 T's in the reads and a C...
[x] Slide 29 to 30: take home messages are missing: several assemblies = need for criteria to choose the best = validation. Use several validations! Find the criteria that best suit to have the best genome for further analysis. Some criteria are expected at the time of publication.
[x] I had to use the link in the slide to really understand what "yak hamming errors" were. I was probably missing the speech in the slide. Reverse red and blue.
[x] Slide 18: a very heterozygous genome can have the same graph! But the assembly will be twice as big.
[x] Another point but it's not very clear in my head either. Shouldn't the terms "homozygous, heterozygous, haploid and diploid" be redefined for this notion of kmer? -> Delete graph KAT.
[x] Slide18 to 21: I have trouble understanding the interest of showing the result of the 2 tools (Merqury and KAT).
[x] Slide 15: busco is also limited because it only looks at "single copies" and we want a globally good genome (we can also use the transcriptome alignment of a close species to check the completeness of genes or a de novo RNA-Seq assembly of the same species).
[x] Slide 13: I'm not sure if we are talking about core genes (rather used for the different genome assemblies of the same species, core-genome versus pan-genome)...to be checked.
[x] Slide17: "TriCoanu" error.
[x] Slide 16: What is "coherence"? The explanation of how to build the graph is missing.
[x] Slides 14: what is the speech? - Make 2 figures instead of 2 and give the number of SG in Vertebral/Artho and Fungi
[x] Slide 12: Lack of information on how to get the expected size, literature (genomesize.com), kmer (genomescope2 on reads), close species -> Reminder to the introduction (link).
[x] Slide 11 to 12: Missing a slide for the different types of completeness: genome size, non-N content, gene content (linked to correctness), kmer content.
[x] Slide 6: Add sequence definition.
[x] Slide 3: Is my genome assembly ready for scaffolding and/or annotation -> 2 sentences instead of 1.

@hexylena I did not complete all the tasks! Can you undo the merge so I can complete the changes?

@alexcorm maybe it would be easier to just open a new branch, rather than reverting? And just add on to that? Or do you think it will change more and it would be better to revert, because the changes you already made looked good. (Apologies for the inconvenience!)

@hexylena don't worry, I will open a new branch and create the PR :)


Markdown Preview Unable to handle GFM links with parenthesis/special chars in URL

VSCode Version:
Version 1.4.0 (1.4.0)
OS Version:
OSX El Capitan 10.11.6 (15G31)
Steps to Reproduce:

Create or open a Markdown document in vscode with the .md extension.
Open the vscode Markdown Preview window for live previewing.  ⇧⌘V
Add the following markdown formatted link and header text to the document.

# This is a markdown formatting test
Here is a link
[TestLink](https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#metrics:graph=~(metrics~(~(~'AWS*2fEC2~'CPUUtilization~'AutoScalingGroupName~'asg-prod-test)~(~'.~'NetworkIn~'.~'.~(yAxis~'right))~(~'.~'NetworkOut~'.~'.)~(~'AWS*2fLogs~'IncomingBytes~'LogGroupName~'TEST_Proxy)~(~'.~'IncomingLogEvents~'.~'.)~(~'AWS*2fEC2~'CPUUtilization~'AutoScalingGroupName~'asg-test-markdown-instance)~(~'.~'NetworkIn~'.~'.~(yAxis~'right))~(~'.~'NetworkOut~'.~'.)~(~'.~'CPUUtilization~'.~'asg-test-markdown-instance)~(~'.~'NetworkIn~'.~'.~(yAxis~'right))~(~'.~'NetworkOut~'.~'.)~(~'AWS*2fLogs~'IncomingBytes~'LogGroupName~'test-markdown-vpc-flow-logs)~(~'.~'IncomingLogEvents~'.~'.))~period~60~stat~'Average~start~'2016-08-17T04*3a00*3a00Z~end~'2016-08-17T07*3a01*3a59Z~yAxis~(left~null~right~null)~region~'us-east-1))

Observe the link is not formatted or displayed correctly. The complex assortment of characters specifically parenthesis and tilda seem to prevent the parser from properly recognizing the link.
Perform the same the test using BBEdit and Github Markdown Preview Package
Observe the link is properly formatted in the preview window.

Please see attached screen shots for side by sides of preview examples

The exact problem seems to be nested parens, as in a link destination like this https://example.com/?key=a(b(c))
According to the commonmark spec, this destination link is invalid (or at least will not be parsed properly):

A link destination consists of either:

a sequence of zero or more characters between an opening < and a closing > that contains no spaces, line breaks, or unescaped < or > characters, or

a nonempty sequence of characters that does not include ASCII space or control characters, and includes parentheses only if (a) they are backslash-escaped or (b) they are part of a balanced pair of unescaped parentheses that is not itself inside a balanced pair of unescaped parentheses.

Here's the line in markdown-it that handles nesting . So I believe that failure to parse the link is by design, at least with the markdown spec we target
One workaround is escaping parens in the link destination: https://example.com/?key=a\(b\(c\)\)

Interesting regarding the commonmark spec I agree and can certainly use the workaround. In light of the specification being targeted I would say this issue could be closed or changed to a feature request for GFM support.
It should be noted that Git Hub Flavored Markdown properly handles the nested parentheses. The BBEdit Github Flavored Markdown parser is using redcarpet which also does not require the escaped nested parentheses.
As an example using the Github WYSIWYG editor for this post I highlighted the https://example.com/?key=a(b(c)) and clicked the link icon and it also omitted the escape characters rendering as shown below:
Testlink

After upgrading our markdown-it version, the example link is now handled correctly in the preview:

Please try out the first 1.17 VSCode insiders build once those start up


what's the meaning and how to generates the file candidate_release-f-to-i.csv & candidate_release-i-to-f.csv

These two are matrices mapping items to contexts and vice versa (two because they are asymmetric and not mere transposes). The details are in the paper: https://www.aclweb.org/anthology/S18-2031.pdf.
Sorry for the late reply: I left Google and did not realize I stopped getting bug reports from here.
Thanks,
Abhijit


Improve start script

I replaced in 'publicPath' key, localhost by .env HOST variable.
On a VM (Vagrant in my case) localhost does not work so I need my own HOST.

@opeah you can get the update in the latest version of react-ssr-scripts

@maxparelius Thanks!


Hard-coded user and group id for shopware's docker images

Shopware Labs Branch
The Docker Team says themselves:

Eliminate the “it works on my machine” problem once and for all.

That's not true for the shopware docker containers unfortunately.
1. Why is this change necessary?
My local user is in a group with ID 20. Shopware uses this ID for the group inside the docker container, too. The problem:

Many Linux systems reserve the GID number range 0 to 99 for statically allocated groups[...]

from https://en.wikipedia.org/wiki/Group_identifier#Reserved_ranges
This means:

Now I can't build the container. We should rely on static variables inside our container so we are independent of the host system.
2. What does this change do, exactly?
The userID and groupID of the container's user won't be determinated by the host user's ids.
3. Describe each step to reproduce the issue or behaviour.
Use a unix system with a user's group's id is 20. Try to install the docker image. It fails.
4. Please link to the relevant issues (if any).
5. Which documentation changes (if any) need to be made because of this PR?
none
6. Checklist

[X] I have written tests and verified that they fail without my change
[X] I have squashed any insignificant commits
[X] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

We've updated the docker environment to work with macOS as this issue is only present there. Feel free to open another PR if it still does not work for you.

@janbuecker I saw that. But to get it „working“ you deleted the group 20 inside the container. But this can only be a temporary solution. If we really want to get the „it works on every machine“ experience we have to cut the dependency to the host system.
There could be another distribution of linux which uses group 21 (or anything in range of 0-99) as default group and it will fail there.
Another scenario: I want to add my user to the dialout group on my host system... now I can‘t use this image...
I‘ll reopen this PR when I‘ve also undo the deletion of the dialout group as it would’t be needed anymore.


securitypolicy

Security Policy
Supported Versions
Taipy follows a security support policy to ensure that security vulnerabilities are addressed promptly. The following table outlines the supported versions of Taipy and whether they receive security updates:

Version
Supported

3.1.x
✅

< 3.1.x
❌

Reporting a Vulnerability
If you discover a security vulnerability in Taipy, please report it to us immediately. We take security vulnerabilities seriously and appreciate your responsible disclosure.
To report a security vulnerability, please use the GitHub Security Advisories feature by visiting the following URL:
Report Vulnerability
Please provide detailed information about the vulnerability, including steps to reproduce, affected versions, and potential impact. We will review and respond to security vulnerability reports promptly.
Thank you for helping us keep Taipy secure.

Thank you for your contribution! You raise an excellent point with the missing safety policy! Can you please delete all files that are not related to the security policy and propose only the “SECURITY.md” file?

@joaoandre-avaiga
In https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository
I read that SECURITY.md seems to be the 'regular' destination of that content.
How come we have to distinct files, with no extension, with the same content here?


High-level feature wishlist

This ticket tracks desired helper functions that would likely call more than one endpoint and do something helpful with the results. Features that would likely call only one endpoint will be tracked on the server repo with a note that SDK exposure would be helpful.

Visitor pattern. Start from a resolver-string-path, visit each children node in consistent order. Could be helpful for intuitive search/filter-like use cases.
Pass a directory with DICOM files to the SDK to then be zipped and uploaded to an acquisition
Get a project by 'label'
Get a gear by name
Run a batch on files found from a search

Here are some other higher level functionality based off of Brian's scitran client

Get all sessions and acquisitions within a project
https://github.com/scitran/client/blob/master/%40scitran/projectHierarchy.m
I like the idea of grabbing groups of files that would be needed for computation, i.e. load a nifti, bvec and bval from a Flywheel acquisition. This could be useful for other Gears/use cases such as the HCP pipelines or spectral data analysis
https://github.com/scitran/client/blob/master/%40scitran/dwiLoad.m
Put analysis
https://github.com/scitran/client/blob/master/%40scitran/putAnalysis.m

Get all sessions and acquisitions within a project

We have the former; GetProjectSessions.

Feedback from Gunnar that was circled back to me:
Downloadable file URLs
Container by path
Standard search functions (e.g., file in project by name)
Simple file upload
Download file into memory
Visitor pattern (tree walker)
JSON flattener

We need more info on "Standard search functions", my guess is you're on that :)
Download file into memory is probably not feasible.
What's meant by "json flattener"?

Function signatures:

Visitor - frontend specific, python example: for node in fw.Walk('scitran/Nueroscience')
High value, maps to use cases where you're inspecting the tree. Implementation effort.
Packfile upload: fw.UploadDirectory('container_type', 'container_id', 'folder', 'type') ideally becomes fw.UploadDirectory('container_id', 'folder', 'type')
High value, low effort, no new implementation required.
Resolve to single container: fw.Lookup('scitran/Nueroscience/ex1')

Search now allows size=all and simple=true, which would improve search QOL for the SDK.

Both the simpler format and the size option is landing in #53.

The function signatures have been placed into an Aha card

Issues from Imad's SDK gear writing...

If a file is given,

Download container by ID would be on my wish list. This exists in the CLI, would be nice to have something similar in the SDK - it would prevent a whole lot of looping going on.


auto login after register

Hello,
Is there anyway (using pac4j) to autologin new user after subscription?
Thanks

It's better to ask your question on the mailing list for others to read the discussion: https://groups.google.com/forum/?fromgroups#!forum/pac4j-users
To answer your question, you cannot do that automatically. You need to do it manually.
For example, you can save a created profile in the security context using the ProfileManager (beware that the AuthorizationGenerators need to be called explicitly in that case).


Group Golf Assignment 1

You need to edit the files already existing in the DB not upload new ones

You need to edit the files already existing in the DB not upload new ones

I had forgotten to upload some files so uploaded those.

Please see other PRs, it looks like your just uploading new files?

Please see other PRs, it looks like your just uploading new files?

I see those PRs and would want to do the same for our team too but my colleague has made the two tower train file as separate file which had to be uploaded. Also some other files I accidently merged the original one's back to your repo. If it's fine can I delete this fork and pull request and do the merge again with all the correct uploaded files?

You're free to do another PR if that makes the most sense

You're free to do another PR if that makes the most sense

just commited all the changes to this repo

thank you, Please delete the other files now

thank you, Please delete the other files now

thank you professor for your patience and support, I have deleted the other files outside the folder now.


Global variables autocomplete

$this $_GET $_GLOBAL....
Now do not support the autocomplete.

resolved in v0.8.1


Regenerate redis client

This PR was generated using Autosynth. :rainbow:
Here's the log from Synthtool:
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/google-cloud-clients/google-cloud-redis/synth.py.
synthtool > Ensuring dependencies.
synthtool > Pulling artman image.
latest: Pulling from googleapis/artman
Digest: sha256:7231f27272231a884e09edb5953148c85ecd8467780d33c4a35c3e507885715b
Status: Image is up to date for googleapis/artman:latest
synthtool > Cloning googleapis.
synthtool > Running generator for google/cloud/redis/artman_redis_v1.yaml.
synthtool > Generated code into /home/kbuilder/.cache/synthtool/googleapis/artman-genfiles/java.
synthtool > Running java formatter on 20 files
synthtool > Running java formatter on 1 files
synthtool > Running java formatter on 37 files
synthtool > Running generator for google/cloud/redis/artman_redis_v1beta1.yaml.
synthtool > Generated code into /home/kbuilder/.cache/synthtool/googleapis/artman-genfiles/java.
synthtool > Running java formatter on 20 files
synthtool > Running java formatter on 1 files
synthtool > Running java formatter on 21 files
synthtool > Cleaned up 0 temporary directories.
synthtool > Wrote metadata to synth.metadata.

someone needs to manually clean this up.  I'm going to close this for now.