Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make typed arrays generic over ArrayBufferLike #59417

Merged
merged 9 commits into from
Sep 24, 2024

Conversation

rbuckton
Copy link
Member

@rbuckton rbuckton commented Jul 24, 2024

Prior to ES2024, the interface for SharedArrayBuffer was assignment-compatible with ArrayBuffer, which meant that APIs that declared that they accepted an ArrayBuffer would blindly accept a SharedArrayBuffer without complaining, despite SharedArrayBuffer being an invalid argument at runtime.

Starting with ES2024, both ArrayBuffer and SharedArrayBuffer diverge significantly due to ArrayBuffer now being resizable, and SharedArrayBuffer being growable:

// es2024.arraybuffer.d.ts
interface ArrayBuffer {
    get maxByteLength(): number;
    get resizable(): boolean;
    get detached(): boolean;
    resize(newByteLength?: number): void;
    transfer(newByteLength?: number): ArrayBuffer;
    transferToFixedLength(newByteLength?: number): ArrayBuffer;
}

// es2024.sharedmemory.d.ts
interface SharedArrayBuffer {
    get maxByteLength(): number;
    get growable(): number;
    grow(newByteLength?: number): void;
}

Where this becomes a problem is that many projects are using typed arrays, such as Uint8Array, and passing along the .buffer property to an API that only accepts ArrayBuffer:

const u8array = new Uint8Array(bytes);
const buffer = u8array.buffer; // ArrayBuffer | SharedArrayBuffer
const hash = crypto.subtle.digest("SHA-512", buffer);

With these two interfaces diverging, existing code will report errors due to the union on .buffer.

To address this, we propose introducing a Buffer type parameter on all typed array types (as well as DataView), as follows:

interface Uint8Array<Buffer extends ArrayBufferLike = ArrayBufferLike> {
  ...
  readonly buffer: Buffer;
  filter(predicate: (value: number, index: number, array: Uint8Array<Buffer>) => any, thisArg?: any): Uint8Array<ArrayBuffer>;
  ...
  subarray(begin?: number, end?: number): Uint8Array<Buffer>;
  ...
}

interface Uint8ArrayConstructor {
    readonly prototype: Uint8Array<ArrayBufferLike>;
    readonly BYTES_PER_ELEMENT: number;

    new (length: number): Uint8Array<ArrayBuffer>;
    new <Buffer extends ArrayBufferLike>(buffer: Buffer, byteOffset?: number, length?: number): Uint8Array<Buffer>;
    new (array: ArrayLike<number> | ArrayBuffer): Uint8Array<ArrayBuffer>;
    new (array: ArrayLike<number> | ArrayBufferLike): Uint8Array<ArrayBufferLike>;

    of(...items: number[]): Uint8Array<ArrayBuffer>;
    from(arrayLike: ArrayLike<number>): Uint8Array<ArrayBuffer>;
    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array<ArrayBuffer>;
}
...

This has the following benefits:

  • .buffer becomes generic over the underlying ArrayBufferLike
  • Simple construction of a TypedArray produces an instance backed by an ArrayBuffer, as per spec:
    const u8array = new Uint8Array(bytes); // Uint8Array<ArrayBuffer>
  • Constructing a TypedArray with a SharedArrayBuffer is properly generic:
    const u8array = new Uint8Array(new SharedArrayBuffer(16)); // Uint8Array<SharedArrayBuffer>
  • TypedArray methods which produce fresh arrays are properly backed by ArrayBuffer, as per spec:
    const u8array = new Uint8Array(new SharedArrayBuffer(16)); // Uint8Array<SharedArrayBuffer>
    const result = u8array.map(x => x * 2); // Uint8Array<ArrayBuffer>
  • Sub-array views over the same SharedArrayBuffer are properly generic:
    const u8array = new Uint8Array(new SharedArrayBuffer(16)); // Uint8Array<SharedArrayBuffer>
    const result = u8array.subarray(0, 8); // Uint8Array<SharedArrayBuffer>
  • Resizing or growing an ArrayBuffer or SharedArrayBuffer can be accomplished through the .buffer property without the need for a type guard:
    const u8array = new Uint8Array(new ArrayBuffer(16), { maxByteLength: 1024 }); // Uint8Array<ArrayBuffer>
    u8array.buffer.resize(512);
    u8array.buffer.resize(256);
    
    const su8array = new Uint8Array(new SharedArrayBuffer(16), { maxByteLength: 1024 }); // Uint8Array<SharedArrayBuffer>
    su8array.buffer.grow(512);
  • Existing APIs that accept non-generic TypedArray instances will fall back to ArrayBufferLike by default, which should be compatible with prior versions TypeScript.

Please note that the changes in this PR are necessary to unblock the introduction of the ES2024 target added by #58573.

Also note that the introduction of the Buffer type parameter would preclude our ability to define common TypedArray and TypedArrayConstructor interfaces, such as is proposed in #59205. For TypedArrayConstructor and TypedArray to be properly generic over Buffer would require either Higher-Kinded Types or a complex HKT workaround to be able to properly type construction. HKTs are not likely to be addressed in a near enough time frame to block the introduction of an ES2024 target, and there is little appetite to ship an HKT workaround in our default libs purely to address the TypedArray use case. As such, this PR must close #59205 until such time as an acceptable solution to the HKT concern is presented.

Closes #59205
Closes #59407
Related #58573

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jul 24, 2024
@rbuckton rbuckton changed the title Make typed arrays generic over ArrayBufferLike Make typed arrays generic over ArrayBufferLike (alt) Jul 24, 2024
@rbuckton rbuckton changed the title Make typed arrays generic over ArrayBufferLike (alt) Make typed arrays generic over ArrayBufferLike Aug 23, 2024
@rbuckton rbuckton marked this pull request as ready for review August 23, 2024 16:20
@rbuckton
Copy link
Member Author

@typescript-bot perf test
@typescript-bot run dt
@typescript-bot test top400
@typescript-bot test tsserver top100
@typescript-bot user test this
@typescript-bot user test tsserver

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 23, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
perf test ✅ Started 👀 Results
run dt ✅ Started 👀 Results
test top400 ✅ Started 👀 Results
test tsserver top100 ✅ Started 👀 Results
user test this ✅ Started 👀 Results
user test tsserver ✅ Started ✅ Results

* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
from<T>(arrayLike: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: any): Float64Array<ArrayBuffer>;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How breaky is this change in particular? I'm guessing if people are calling e.g. int32array.from(iterable, (...) => { ... }), we'd pretty much always be able to infer something good for T, but I'm no inference expert.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't break any existing code. Any place that previously would have passed an iterable or arraylike for number will still get number values. This is actually more flexible than what we had, and was already being used on BigInt64Array.

@typescript-bot
Copy link
Collaborator

@rbuckton Here are the results of running the user tests with tsc comparing main and refs/pull/59417/merge:

Something interesting changed - please have a look.

Details

bcryptjs

/mnt/ts_downloads/_/m/bcryptjs/tsconfig.json

  • [NEW] error TS2345: Argument of type 'number[] | Int32Array<ArrayBuffer>' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)
  • [MISSING] error TS2345: Argument of type 'Int32Array | number[]' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)

effect

tsconfig.json

tsconfig.build.json

tsconfig.base.json

@typescript-bot
Copy link
Collaborator

Hey @rbuckton, the results of running the DT tests are ready.

There were interesting changes:

Changes are too big to display here, please check the log.

You can check the log here.

@typescript-bot
Copy link
Collaborator

@rbuckton Here are the results of running the user tests with tsserver comparing main and refs/pull/59417/merge:

There were infrastructure failures potentially unrelated to your change:

  • 1 instance of "Unknown failure"

Otherwise...

Everything looks good!

@gabritto
Copy link
Member

@typescript-bot pack this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 23, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
pack this ✅ Started ✅ Results

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 23, 2024

Hey @gabritto, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/163427/artifacts?artifactName=tgz&fileId=C88F48DC526EEE925507382C2C09D48B1EDDA25066DE687D4C1176277043705302&fileName=/typescript-5.7.0-insiders.20240823.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/[email protected]".;

@typescript-bot
Copy link
Collaborator

@rbuckton
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,340 +187 (+ 0.30%) ~ ~ p=0.001 n=6
Types 50,242 50,378 +136 (+ 0.27%) ~ ~ p=0.001 n=6
Memory used 193,558k (± 0.96%) 194,577k (± 0.98%) ~ 192,700k 196,334k p=0.066 n=6
Parse Time 1.57s (± 0.80%) 1.57s (± 1.04%) ~ 1.55s 1.59s p=0.742 n=6
Bind Time 0.86s (± 0.87%) 0.86s (± 1.14%) ~ 0.85s 0.87s p=1.000 n=6
Check Time 11.40s (± 0.31%) 11.26s (± 0.48%) -0.14s (- 1.24%) 11.20s 11.34s p=0.005 n=6
Emit Time 3.25s (± 0.45%) 3.23s (± 1.75%) ~ 3.14s 3.28s p=0.935 n=6
Total Time 17.08s (± 0.26%) 16.92s (± 0.49%) -0.16s (- 0.97%) 16.78s 17.00s p=0.005 n=6
angular-1 - node (v18.15.0, x64)
Errors 7 7 ~ ~ ~ p=1.000 n=6
Symbols 945,753 947,121 +1,368 (+ 0.14%) ~ ~ p=0.001 n=6
Types 410,067 410,756 +689 (+ 0.17%) ~ ~ p=0.001 n=6
Memory used 1,222,691k (± 0.00%) 1,223,915k (± 0.00%) +1,224k (+ 0.10%) 1,223,889k 1,223,942k p=0.005 n=6
Parse Time 7.90s (± 0.89%) 8.03s (± 0.25%) +0.13s (+ 1.60%) 8.00s 8.06s p=0.037 n=6
Bind Time 2.23s (± 0.46%) 2.24s (± 0.18%) ~ 2.23s 2.24s p=0.257 n=6
Check Time 36.37s (± 0.42%) 36.36s (± 0.40%) ~ 36.14s 36.54s p=0.873 n=6
Emit Time 17.83s (± 0.23%) 17.78s (± 0.37%) ~ 17.73s 17.90s p=0.198 n=6
Total Time 64.34s (± 0.17%) 64.42s (± 0.27%) ~ 64.23s 64.68s p=0.518 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,532,236 2,532,408 +172 (+ 0.01%) ~ ~ p=0.001 n=6
Types 996,125 996,162 +37 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 2,460,050k (± 0.00%) 2,460,350k (± 0.00%) +300k (+ 0.01%) 2,460,298k 2,460,395k p=0.005 n=6
Parse Time 11.19s (± 0.13%) 11.20s (± 0.26%) ~ 11.18s 11.26s p=0.289 n=6
Bind Time 2.68s (± 0.44%) 2.68s (± 0.50%) ~ 2.66s 2.69s p=1.000 n=6
Check Time 88.57s (± 0.33%) 88.86s (± 0.46%) ~ 88.33s 89.48s p=0.199 n=6
Emit Time 0.33s (± 2.71%) 0.33s (± 3.10%) ~ 0.32s 0.34s p=0.541 n=6
Total Time 102.76s (± 0.30%) 103.07s (± 0.42%) ~ 102.54s 103.75s p=0.229 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,231,981 1,235,302 +3,321 (+ 0.27%) ~ ~ p=0.001 n=6
Types 264,568 265,092 +524 (+ 0.20%) ~ ~ p=0.001 n=6
Memory used 2,353,861k (± 0.01%) 2,419,232k (± 6.01%) +65,372k (+ 2.78%) 2,358,537k 2,716,330k p=0.005 n=6
Parse Time 6.00s (± 1.11%) 6.00s (± 0.89%) ~ 5.94s 6.09s p=0.748 n=6
Bind Time 2.25s (± 1.03%) 2.26s (± 0.78%) ~ 2.23s 2.28s p=0.872 n=6
Check Time 41.08s (± 0.52%) 40.99s (± 0.59%) ~ 40.59s 41.26s p=0.810 n=6
Emit Time 4.00s (± 0.90%) 4.03s (± 3.49%) ~ 3.88s 4.30s p=1.000 n=6
Total Time 53.36s (± 0.54%) 53.30s (± 0.73%) ~ 52.84s 53.96s p=0.689 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,231,981 1,235,302 +3,321 (+ 0.27%) ~ ~ p=0.001 n=6
Types 264,568 265,092 +524 (+ 0.20%) ~ ~ p=0.001 n=6
Memory used 2,428,356k (± 0.04%) 2,551,481k (±11.37%) 🔻+123,124k (+ 5.07%) 2,432,180k 3,144,355k p=0.005 n=6
Parse Time 6.22s (± 0.86%) 6.26s (± 1.11%) ~ 6.16s 6.36s p=0.378 n=6
Bind Time 2.05s (± 0.96%) 2.23s (± 5.08%) ~ 2.01s 2.32s p=0.063 n=6
Check Time 41.76s (± 0.79%) 41.27s (± 0.62%) -0.48s (- 1.16%) 41.05s 41.76s p=0.020 n=6
Emit Time 4.07s (± 2.35%) 4.11s (± 2.77%) ~ 4.00s 4.33s p=0.261 n=6
Total Time 54.10s (± 0.44%) 53.90s (± 0.54%) ~ 53.69s 54.35s p=0.230 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 257,004 257,764 +760 (+ 0.30%) ~ ~ p=0.001 n=6
Types 105,760 105,824 +64 (+ 0.06%) ~ ~ p=0.001 n=6
Memory used 429,798k (± 0.02%) 430,318k (± 0.02%) +520k (+ 0.12%) 430,200k 430,458k p=0.005 n=6
Parse Time 4.15s (± 0.66%) 4.16s (± 0.54%) ~ 4.14s 4.20s p=0.625 n=6
Bind Time 1.59s (± 0.65%) 1.58s (± 1.01%) ~ 1.57s 1.61s p=0.406 n=6
Check Time 22.45s (± 0.49%) 22.43s (± 0.25%) ~ 22.37s 22.53s p=0.872 n=6
Emit Time 2.05s (± 0.94%) 2.04s (± 0.48%) ~ 2.03s 2.05s p=0.508 n=6
Total Time 30.24s (± 0.44%) 30.22s (± 0.25%) ~ 30.11s 30.33s p=1.000 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 68 68 ~ ~ ~ p=1.000 n=6
Symbols 225,018 226,050 +1,032 (+ 0.46%) ~ ~ p=0.001 n=6
Types 94,249 94,510 +261 (+ 0.28%) ~ ~ p=0.001 n=6
Memory used 370,221k (± 0.02%) 371,087k (± 0.03%) +867k (+ 0.23%) 370,917k 371,206k p=0.005 n=6
Parse Time 3.45s (± 0.61%) 3.47s (± 0.81%) ~ 3.42s 3.50s p=0.197 n=6
Bind Time 1.93s (± 0.63%) 1.92s (± 1.26%) ~ 1.89s 1.96s p=0.742 n=6
Check Time 19.45s (± 0.22%) 19.46s (± 0.30%) ~ 19.41s 19.57s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 24.82s (± 0.12%) 24.86s (± 0.35%) ~ 24.74s 24.98s p=0.334 n=6
vscode - node (v18.15.0, x64)
Errors 66 67 +1 (+ 1.52%) ~ ~ p=0.001 n=6
Symbols 3,019,401 3,021,914 +2,513 (+ 0.08%) ~ ~ p=0.001 n=6
Types 1,038,975 1,040,412 +1,437 (+ 0.14%) ~ ~ p=0.001 n=6
Memory used 3,140,462k (± 0.01%) 3,142,860k (± 0.00%) +2,398k (+ 0.08%) 3,142,785k 3,142,902k p=0.005 n=6
Parse Time 14.01s (± 0.23%) 14.01s (± 0.45%) ~ 13.94s 14.09s p=0.936 n=6
Bind Time 4.36s (± 2.49%) 4.30s (± 0.32%) ~ 4.28s 4.32s p=0.627 n=6
Check Time 80.32s (± 0.52%) 79.87s (± 0.34%) -0.45s (- 0.56%) 79.45s 80.18s p=0.031 n=6
Emit Time 20.64s (± 0.54%) 20.40s (± 0.56%) -0.24s (- 1.15%) 20.19s 20.52s p=0.016 n=6
Total Time 119.32s (± 0.49%) 118.57s (± 0.24%) -0.74s (- 0.62%) 118.19s 118.88s p=0.008 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 275,311 277,230 +1,919 (+ 0.70%) ~ ~ p=0.001 n=6
Types 112,431 113,256 +825 (+ 0.73%) ~ ~ p=0.001 n=6
Memory used 424,218k (± 0.03%) 425,762k (± 0.02%) +1,544k (+ 0.36%) 425,688k 425,880k p=0.005 n=6
Parse Time 3.98s (± 0.62%) 3.95s (± 0.55%) ~ 3.93s 3.99s p=0.088 n=6
Bind Time 1.72s (± 0.82%) 1.72s (± 0.30%) ~ 1.71s 1.72s p=0.667 n=6
Check Time 17.52s (± 0.43%) 17.59s (± 0.67%) ~ 17.41s 17.77s p=0.421 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 23.22s (± 0.35%) 23.26s (± 0.54%) ~ 23.06s 23.43s p=0.575 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 535,757 535,876 +119 (+ 0.02%) ~ ~ p=0.001 n=6
Types 177,028 177,045 +17 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 480,451k (± 0.01%) 480,823k (± 0.01%) +372k (+ 0.08%) 480,758k 480,919k p=0.005 n=6
Parse Time 2.84s (± 0.68%) 2.83s (± 0.43%) ~ 2.82s 2.85s p=0.934 n=6
Bind Time 1.05s 1.04s (± 1.16%) ~ 1.03s 1.06s p=0.293 n=6
Check Time 15.34s (± 0.30%) 15.37s (± 0.16%) ~ 15.33s 15.39s p=0.105 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 19.22s (± 0.30%) 19.25s (± 0.14%) ~ 19.22s 19.29s p=0.747 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

tsserver

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-UnionsTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,296ms (± 0.57%) 2,296ms (± 0.25%) ~ 2,286ms 2,304ms p=0.470 n=6
Req 2 - geterr 5,155ms (± 0.40%) 5,173ms (± 0.41%) ~ 5,150ms 5,203ms p=0.199 n=6
Req 3 - references 261ms (± 0.96%) 262ms (± 0.20%) ~ 262ms 263ms p=0.242 n=6
Req 4 - navto 228ms (± 0.55%) 227ms (± 0.24%) -2ms (- 0.66%) 226ms 227ms p=0.025 n=6
Req 5 - completionInfo count 1,357 1,357 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 85ms (± 3.85%) 81ms (± 8.62%) ~ 75ms 92ms p=0.288 n=6
CompilerTSServer - node (v18.15.0, x64)
Req 1 - updateOpen 2,395ms (± 0.66%) 2,407ms (± 1.50%) ~ 2,371ms 2,449ms p=1.000 n=6
Req 2 - geterr 3,912ms (± 0.35%) 3,932ms (± 0.20%) +20ms (+ 0.52%) 3,921ms 3,943ms p=0.016 n=6
Req 3 - references 274ms (± 0.38%) 273ms (± 0.73%) ~ 270ms 275ms p=1.000 n=6
Req 4 - navto 228ms (± 0.37%) 228ms (± 3.06%) ~ 223ms 237ms p=0.367 n=6
Req 5 - completionInfo count 1,519 1,519 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 79ms (± 6.48%) 75ms (± 8.08%) ~ 69ms 86ms p=0.252 n=6
xstate-main-1-tsserver - node (v18.15.0, x64)
Req 1 - updateOpen 5,194ms (± 0.12%) 5,181ms (± 0.39%) ~ 5,160ms 5,215ms p=0.090 n=6
Req 2 - geterr 1,126ms (± 0.68%) 1,130ms (± 0.86%) ~ 1,118ms 1,141ms p=0.630 n=6
Req 3 - references 87ms (± 5.34%) 87ms (± 2.75%) ~ 86ms 92ms p=0.858 n=6
Req 4 - navto 442ms (± 0.44%) 442ms (± 0.30%) ~ 440ms 443ms p=0.738 n=6
Req 5 - completionInfo count 3,444 3,444 ~ ~ ~ p=1.000 n=6
Req 5 - completionInfo 820ms (± 1.11%) 826ms (± 1.45%) ~ 812ms 840ms p=0.336 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • CompilerTSServer - node (v18.15.0, x64)
  • Compiler-UnionsTSServer - node (v18.15.0, x64)
  • xstate-main-1-tsserver - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

startup

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
tsc-startup - node (v18.15.0, x64)
Execution time 158.89ms (± 0.16%) 158.83ms (± 0.19%) -0.06ms (- 0.04%) 157.82ms 163.49ms p=0.000 n=600
tsserver-startup - node (v18.15.0, x64)
Execution time 232.63ms (± 0.15%) 232.51ms (± 0.13%) -0.12ms (- 0.05%) 231.11ms 236.48ms p=0.001 n=600
tsserverlibrary-startup - node (v18.15.0, x64)
Execution time 227.53ms (± 0.15%) 227.44ms (± 0.16%) -0.09ms (- 0.04%) 226.25ms 233.20ms p=0.002 n=600
typescript-startup - node (v18.15.0, x64)
Execution time 227.55ms (± 0.15%) 227.63ms (± 0.14%) +0.08ms (+ 0.03%) 226.27ms 232.71ms p=0.008 n=600
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • tsc-startup - node (v18.15.0, x64)
  • tsserver-startup - node (v18.15.0, x64)
  • tsserverlibrary-startup - node (v18.15.0, x64)
  • typescript-startup - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@gabritto
Copy link
Member

Hey @rbuckton, the results of running the DT tests are ready.

There were interesting changes:

Changes are too big to display here, please check the log.

You can check the log here.

Most errors seem to be due to ExpectType changes, but at least one in uuid was not, and instead was due to class CustomBuffer extends Uint8Array {}.

@typescript-bot
Copy link
Collaborator

@rbuckton Here are the results of running the top 400 repos with tsc comparing main and refs/pull/59417/merge:

Something interesting changed - please have a look.

Details

Chocobozzz/PeerTube

6 of 12 projects failed to build with the old tsc and were ignored

packages/types-generator/tsconfig.types.json

  • error TS2510: Base constructors must all have the same return type.

@typescript-bot
Copy link
Collaborator

@rbuckton Here are some more interesting changes from running the top 400 repos suite

Details

jupyterlab/jupyterlab

46 of 59 projects failed to build with the old tsc and were ignored

packages/ui-components/examples/simple-windowed-list/tsconfig.json

@typescript-bot
Copy link
Collaborator

@rbuckton Here are the results of running the top 200 repos with tsserver comparing main and refs/pull/59417/merge:

Something interesting changed - please have a look.

Details

Server exited prematurely with code unknown and signal SIGABRT

Server exited prematurely with code unknown and signal SIGABRT

Affected repos

backstage/backstage Raw error text: RepoResults8/backstage.backstage.rawError.txt in the artifact folder
Replay commands: RepoResults8/backstage.backstage.replay.txt in the artifact folder

Last few requests

{"seq":41,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/scripts/check-docs-quality.js","line":69,"offset":55,"includeExternalModuleExports":false,"triggerKind":2,"triggerCharacter":" "}}
{"seq":42,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/scripts/check-docs-quality.js","line":75,"offset":5}}
{"seq":43,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/scripts/check-docs-quality.js","line":82,"offset":29}}
{"seq":44,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":[],"openFiles":[{"file":"@PROJECT_ROOT@/packages/integration/config.d.ts","projectRootPath":"@PROJECT_ROOT@"}]}}

Repro steps

#!/bin/bash

git clone https://github.com/backstage/backstage --recurse-submodules
git -C "./backstage" reset --hard 0d3a8fa1cd66121f559dea89736d856e9f154257
# Install packages (exact steps are below, but it might be easier to follow the repo readme)
yarn --cwd "./backstage" install --no-immutable --mode=skip-build
yarn --cwd "./backstage/storybook" install --no-immutable --mode=skip-build
yarn --cwd "./backstage/microsite" install --no-immutable --mode=skip-build
downloadUrl=$(curl -s "https://typescript.visualstudio.com/TypeScript/_apis/build/builds/163424/artifacts?artifactName=RepoResults8&api-version=7.0" | jq -r ".resource.downloadUrl")
wget -O RepoResults8.zip "$downloadUrl"
unzip -p RepoResults8.zip RepoResults8/backstage.backstage.replay.txt > backstage.backstage.replay.txt
npm install --no-save @typescript/server-replay

To run the repro:

# `npx tsreplay --help` to learn about helpful switches for debugging, logging, etc.
npx tsreplay ./backstage ./backstage.backstage.replay.txt <PATH_TO_tsserver.js>

Server exited prematurely with code unknown and signal SIGABRT

Server exited prematurely with code unknown and signal SIGABRT

Affected repos

calcom/cal.com Raw error text: RepoResults6/calcom.cal.com.rawError.txt in the artifact folder
Replay commands: RepoResults6/calcom.cal.com.replay.txt in the artifact folder

Last few requests

{"seq":77,"type":"request","command":"completionEntryDetails","arguments":{"file":"@PROJECT_ROOT@/packages/types/AppHandler.d.ts","line":4,"offset":34,"entryNames":["auto-migrations"]}}
{"seq":78,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/packages/types/AppHandler.d.ts","line":9,"offset":10}}
{"seq":79,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":["@PROJECT_ROOT@/packages/ui/index.tsx"],"openFiles":[]}}
{"seq":80,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":[],"openFiles":[{"file":"@PROJECT_ROOT@/packages/prisma/enum-generator.ts","projectRootPath":"@PROJECT_ROOT@"}]}}

Repro steps

#!/bin/bash

git clone https://github.com/calcom/cal.com --recurse-submodules
git -C "./cal.com" reset --hard c67877cc51a43b981b2784cee73d802043582bba
yarn --cwd "./cal.com" install --no-immutable --mode=skip-build
downloadUrl=$(curl -s "https://typescript.visualstudio.com/TypeScript/_apis/build/builds/163424/artifacts?artifactName=RepoResults6&api-version=7.0" | jq -r ".resource.downloadUrl")
wget -O RepoResults6.zip "$downloadUrl"
unzip -p RepoResults6.zip RepoResults6/calcom.cal.com.replay.txt > calcom.cal.com.replay.txt
npm install --no-save @typescript/server-replay

To run the repro:

# `npx tsreplay --help` to learn about helpful switches for debugging, logging, etc.
npx tsreplay ./cal.com ./calcom.cal.com.replay.txt <PATH_TO_tsserver.js>

@typescript-bot
Copy link
Collaborator

@rbuckton Here are some more interesting changes from running the top 200 repos suite

Details

Server exited prematurely with code unknown and signal SIGABRT

Server exited prematurely with code unknown and signal SIGABRT

Affected repos

elastic/kibana Raw error text: RepoResults14/elastic.kibana.rawError.txt in the artifact folder
Replay commands: RepoResults14/elastic.kibana.replay.txt in the artifact folder

Last few requests

{"seq":78,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/packages/kbn-language-documentation-popover/jest.config.js","line":10,"offset":12}}
{"seq":79,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/packages/kbn-language-documentation-popover/jest.config.js","line":10,"offset":12,"includeExternalModuleExports":false,"triggerKind":1}}
{"seq":80,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":["@PROJECT_ROOT@/packages/kbn-unified-doc-viewer/index.ts"],"openFiles":[]}}
{"seq":81,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":[],"openFiles":[{"file":"@PROJECT_ROOT@/x-pack/test/security_api_integration/oidc.http2.config.ts","projectRootPath":"@PROJECT_ROOT@"}]}}

Repro steps

#!/bin/bash

git clone https://github.com/elastic/kibana --recurse-submodules
git -C "./kibana" reset --hard 5dfa3ecf58a67cf05fc9421dce7d29401d43bee0
# Install packages (exact steps are below, but it might be easier to follow the repo readme)
yarn --cwd "./kibana" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test_serverless/functional/test_suites/security/cypress" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test_serverless/functional/test_suites/observability/cypress" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/task_manager_claimer_mget/plugins/sample_task_plugin_mget" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/security_solution_cypress" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/security_solution_api_integration" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/security_api_integration/packages/helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/plugin_api_perf/plugins/task_manager_performance" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/plugin_api_integration/plugins/sample_task_plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/plugin_api_integration/plugins/event_log" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/plugin_api_integration/plugins/elasticsearch_client" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/functional_with_es_ssl/plugins/cases" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/functional_with_es_ssl/plugins/alerts" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/functional_execution_context/plugins/alerts" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/functional_embedded/plugins/iframe_embedded" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/functional_cors/plugins/kibana_cors_test" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/cases_api_integration/common/plugins/security_solution" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/cases_api_integration/common/plugins/observability" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/cases_api_integration/common/plugins/cases" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/alerting_api_integration/packages/helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/alerting_api_integration/common/plugins/alerts_restricted" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/alerting_api_integration/common/plugins/alerts" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/alerting_api_integration/common/plugins/actions_simulators" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/test/alerting_api_integration/common/plugins/aad" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/threat_intelligence" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/session_view" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/serverless_search" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/serverless_observability" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/serverless" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/security_solution_serverless" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/security_solution_ess" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/security_solution" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/search_notebooks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/search_connectors" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/osquery" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/observability_solution/apm/scripts" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/kubernetes_security" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/fleet" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/elastic_assistant" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/plugins/cases" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/upselling" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/storybook/config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/side_nav" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/navigation" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/features" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/ecs_data_quality_dashboard" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/distribution_bar" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security-solution/data_table" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/role_management_model" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/plugin_types_server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/plugin_types_public" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/plugin_types_common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/form_components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/authorization_core" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/security/api_key_management" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/rollup" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/observability/get_padded_alert_time_range_util" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/observability/alerting_test_data" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/observability/alerting_rule_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/observability/alert_details" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/url_state" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/ui_actions" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/trained_models_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/time_buckets" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/string_hash" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/runtime_field_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/route_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/response_stream" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/random_sampler_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/query_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/number_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/nested_property" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/local_storage" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/kibana_theme" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/json_schemas" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/is_populated_object" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/is_defined" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/inference_integration_flyout" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/in_memory_table" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/error_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/date_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/date_picker" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/data_view_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/data_grid" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/data_frame_analytics_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/creation_wizard_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/chi2test" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/category_validator" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/cancellable_search" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/anomaly_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/aiops_test_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/aiops_log_rate_analysis" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/aiops_log_pattern_analysis" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/aiops_components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/aiops_common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/aiops_change_point_detection" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/ml/agg_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/maps/vector_tile_utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-synthetics-private-location" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-slo-schema" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-random-sampling" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-langchain" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-infra-forge" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-entities-schema" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-elastic-assistant-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-elastic-assistant" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-data-forge" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-cloud-security-posture-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-cloud-security-posture" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-alerting-state-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/kbn-alerting-comparators" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/x-pack/packages/index-management" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/server_integration/plugins/status_plugin_b" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/server_integration/plugins/status_plugin_a" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/usage_collection" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/ui_settings_plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/telemetry" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/session_notifications" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/saved_objects_hidden_type" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/saved_objects_hidden_from_http_apis_type" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/saved_object_import_warnings" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/saved_object_export_transforms" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/rendering_plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/management_test_plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/kbn_tp_custom_visualizations" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/kbn_top_nav" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/kbn_sample_panel_action" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/index_patterns" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/elasticsearch_client_plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/data_search" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_provider_plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_static_assets" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_route_timeouts" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_helpmenu" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_execution_context" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_deprecations" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_deep_links" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_chromeless" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_b" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_appleave" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_plugin_a" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_http" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_history_block" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_dynamic_resolving_b" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_dynamic_resolving_a" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/core_app_status" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/plugin_functional/plugins/app_link_test" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/node_roles_functional/plugins/core_plugin_initializer_context" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/interpreter_functional/plugins/kbn_tp_run_pipeline" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/health_gateway/plugins/status" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/analytics/plugins/analytics_plugin_a" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/test/analytics/plugins/analytics_ftr_helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/src/plugins/esql_datagrid" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/src/plugins/esql" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/src/plugins/chart_expressions/common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/table_persist" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/storybook/mock" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/storybook/config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/router/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/router/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/router/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/prompt/not_found" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/prompt/no_data_views/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/prompt/no_data_views/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/prompt/no_data_views/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/solution_nav" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/no_data_config/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/no_data_config/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/no_data_config/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/no_data/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/no_data/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/no_data/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/kibana_template/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/kibana_template/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/kibana_template/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/kibana_no_data/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/kibana_no_data/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/kibana_no_data/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/analytics_no_data/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/analytics_no_data/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/page/analytics_no_data/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/modal/tabbed" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/markdown/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/markdown/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/markdown/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/link/redirect_app/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/link/redirect_app/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/link/redirect_app/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/util" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/image/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/image/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/file_upload/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/file_picker/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/file/context" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/error_boundary" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/code_editor/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/code_editor/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/chrome/navigation" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/card/no_data/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/card/no_data/mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/card/no_data/impl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/button_toolbar" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/button/exit_full_screen" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/shared-ux/avatar/solution" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/storybook/config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/settings/security_project" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/settings/search_project" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/settings/observability_project" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/settings/common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/serverless/project_switcher" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/response-ops/feature_flag_service" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/react/kibana_mount" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/react/kibana_context/theme" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/react/kibana_context/styled" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/react/kibana_context/root" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/react/kibana_context/render" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/react/kibana_context/common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/presentation/presentation_publishing" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/presentation/presentation_containers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-zod-helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-zod" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-yarn-lock-validator" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-xstate-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-whereis-pkg-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-web-worker-stub" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-visualization-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-visualization-ui-components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-validate-next-docs-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-utility-types-jest" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-utility-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-utility-types/src/tsd_tests" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-user-profile-components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-use-tracked-promise" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-unsaved-changes-prompt" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-unsaved-changes-badge" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-unified-field-list" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-unified-doc-viewer" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-unified-data-table" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ui-theme" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ui-shared-deps-src" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ui-shared-deps-npm" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ui-actions-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-typed-react-router-config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ts-type-check-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ts-projects" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-try-in-console" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-triggers-actions-ui-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-tooling-log" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-tinymath" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-timerange" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-timelion-grammar" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-text-based-editor" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-test-subj-selector" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-test-jest-helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-test-eui-helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-test" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-telemetry-tools" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-storybook" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-storybook/preset" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-stdio-dev-helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-std" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-spec-to-console" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-sort-predicates" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-sort-package-json" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-some-dev-log" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-shared-ux-utility" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-shared-svg" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-set-map" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-server-route-repository-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-server-route-repository-client" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-server-route-repository" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-server-http-tools" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-t-grid" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-rules" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-lists-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-list-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-list-hooks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-list-constants" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-list-api" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-io-ts-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-io-ts-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-io-ts-list-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-io-ts-alerting-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-hook-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-exceptions-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-exception-list-components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-es-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-endpoint-exceptions-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-ecs" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-securitysolution-autocomplete" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-security-hardening" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-search-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-search-response-warnings" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-search-index-documents" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-search-errors" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-search-connectors" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-search-api-panels" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-screenshotting-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-saved-objects-settings" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-safer-lodash-set" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-rule-data-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-rrule" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-router-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-router-to-openapispec" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-rison" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-resizable-layout" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/public" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/mocks_server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/get_csv_panel_actions" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/export_types/png_common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/export_types/png" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/export_types/pdf_common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/export_types/pdf" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/export_types/csv_common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/export_types/csv" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-reporting/common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-source-classifier-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-source-classifier" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-path" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-packages" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-linter" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-info" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-repo-file-maps" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-recently-accessed" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-react-hooks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-react-field" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-profiling-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-plugin-helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-plugin-generator" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-plugin-check" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-picomatcher" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-performance-testing-dataset-extractor" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-peggy-loader" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-peggy" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-panel-loader" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-osquery-io-ts-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-optimizer-webpack-helpers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-optimizer" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-openapi-generator" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-openapi-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-openapi-bundler" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-object-versioning" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-monaco" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-mock-idp-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-mock-idp-plugin" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-mapbox-gl" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/storybook/config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/utilities" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/setting_ids" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/section_registry" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/field_definition" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/components/form" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/components/field_row" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/components/field_input" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/components/field_category" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/settings/application" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-management/cards_navigation" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-managed-vscode-config-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-managed-vscode-config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-managed-content-badge" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-logging-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-logging" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-lint-ts-projects-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-lint-packages-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-lens-formula-docs" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-lens-embeddable-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-language-documentation-popover" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-kibana-manifest-schema" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-json-ast" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-journeys" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-jest-serializers" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ipynb" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-io-ts-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-investigation-shared" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-interpreter" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-import-resolver" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-import-locator" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-i18n-react" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-i18n" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-health-gateway-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-hapi-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-handlebars" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-guided-onboarding" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-grouping" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-grid-layout" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-get-repo-files" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-generate-csv" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-generate-console-definitions" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-generate" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ftr-screenshot-filename" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ftr-common-functional-ui-services" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ftr-common-functional-services" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-formatters" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-flot-charts" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-find-used-node-modules" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-field-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-field-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-failed-test-reporter-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-expect" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-expandable-flyout" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-event-annotation-components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-event-annotation-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-esql-validation-autocomplete" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-esql-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-esql-ast" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-eslint-plugin-telemetry" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-eslint-plugin-imports" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-eslint-plugin-i18n" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-eslint-plugin-eslint" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-eslint-plugin-disable" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-eslint-config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-es-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-es-query" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-es-errors" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-es-archiver" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-es" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-elastic-agent-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ebt-tools" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-dom-drag-drop" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-docs-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-doc-links" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-discover-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-dev-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-dev-proc-runner" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-dev-cli-runner" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-dev-cli-errors" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-datemath" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-data-view-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-data-stream-adapter" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-data-service" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-cypress-config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-custom-integrations" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-custom-icons" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-crypto-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-crypto" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-content-management-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-config-schema" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-config-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-coloring" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-code-owners" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-cli-dev-mode" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ci-stats-shipper-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ci-stats-reporter" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ci-stats-performance-metrics" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ci-stats-core" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-check-mappings-update-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-chart-icons" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-cell-actions" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-cases-components" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-capture-oas-snapshot-cli" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-calculate-width-from-char-count" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-calculate-auto" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-bfetch-error" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-bazel-runner" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-babel-transform" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-babel-register" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-babel-preset" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-axe-config" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-avc-banner" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-apm-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-apm-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-apm-synthtrace-client" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-apm-synthtrace" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-apm-data-view" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-apm-config-loader" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-analytics" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ambient-ui-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ambient-storybook-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ambient-ftr-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ambient-common-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-alerts-ui-shared" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-alerts-grouping" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-alerts-as-data-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-alerting-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-actions-types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/kbn-ace" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/home/sample_data_types" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/home/sample_data_tab" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/home/sample_data_card" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/default-nav/ml" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/default-nav/management" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/default-nav/devtools" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/default-nav/analytics" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/shared" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/security" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/search" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/observability" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/ml" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/management" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/fleet" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/devtools" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/deeplinks/analytics" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-settings/core-user-settings-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-settings/core-user-settings-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-settings/core-user-settings-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-browser-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/user-profile/core-user-profile-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/usage-data/core-usage-data-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/usage-data/core-usage-data-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/usage-data/core-usage-data-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/usage-data/core-usage-data-base-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-browser-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/ui-settings/core-ui-settings-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/theme/core-theme-browser-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/theme/core-theme-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/theme/core-theme-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/test-helpers/core-test-helpers-test-utils" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/test-helpers/core-test-helpers-so-type-serializer" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/test-helpers/core-test-helpers-model-versions" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/test-helpers/core-test-helpers-kbn-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/test-helpers/core-test-helpers-http-setup-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/test-helpers/core-test-helpers-deprecations-getters" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/status/core-status-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/status/core-status-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/status/core-status-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/status/core-status-common-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/status/core-status-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-browser-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/security/core-security-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-utils-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-migration-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-migration-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-import-export-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-import-export-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-common" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-browser-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-base-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-base-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-api-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-api-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-api-server" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/saved-objects/core-saved-objects-api-browser" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/root/core-root-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/root/core-root-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/rendering/core-rendering-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/rendering/core-rendering-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/rendering/core-rendering-browser-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/rendering/core-rendering-browser-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/preboot/core-preboot-server-mocks" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/preboot/core-preboot-server-internal" install --ignore-engines --ignore-scripts --silent
yarn --cwd "./kibana/packages/core/preboot/core
:error: Truncated - see log for full output :error:
</details>

@typescript-bot
Copy link
Collaborator

@rbuckton Here are the results of running the user tests with tsc comparing main and refs/pull/59417/merge:

Something interesting changed - please have a look.

Details

bcryptjs

/mnt/ts_downloads/_/m/bcryptjs/tsconfig.json

  • [NEW] error TS2345: Argument of type 'number[] | Int32Array<ArrayBuffer>' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)
  • [MISSING] error TS2345: Argument of type 'Int32Array | number[]' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)

effect

tsconfig.json

tsconfig.build.json

tsconfig.base.json

@rbuckton
Copy link
Member Author

@typescript-bot user test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 24, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
user test this ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

@rbuckton Here are the results of running the user tests with tsc comparing main and refs/pull/59417/merge:

Something interesting changed - please have a look.

Details

bcryptjs

/mnt/ts_downloads/_/m/bcryptjs/tsconfig.json

  • [NEW] error TS2345: Argument of type 'number[] | Int32Array<ArrayBuffer>' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)
  • [MISSING] error TS2345: Argument of type 'Int32Array | number[]' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)

effect

tsconfig.json

tsconfig.build.json

tsconfig.base.json

@rbuckton
Copy link
Member Author

@typescript-bot: pack this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 26, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
pack this ✅ Started ✅ Results

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 26, 2024

Hey @rbuckton, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/163441/artifacts?artifactName=tgz&fileId=2C5561A7DDD12A23FCB0D71C86E1592647F43EC22338E53A40F3CC7780ACB28D02&fileName=/typescript-5.7.0-insiders.20240826.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/[email protected]".;

@rbuckton
Copy link
Member Author

It looks like effect is running into an issue with the NodeJS types because Buffer has a few members that make it incompatible with Uint8Array<ArrayBufferLike> when comparing structurally:

  • in Buffer, slice() returns Buffer, while in Uint8Array it returns Uint8Array<ArrayBuffer>
  • in Buffer, subarray() returns Buffer, while in Uint8Array it returns Uint8Array<TArrayBuffer>
  • The array/obj arguments in various Uint8Array callbacks like map/filter/etc. specify Uint8Array<TArrayBuffer>, which triggers assignability errors from other methods like slice() and subarray().

The array/obj argument issue can be addressed by using this types. For slice() and subarray() this can either be addressed by either making Buffer generic over TArrayBuffer, or changing the return types of slice() and subarray(). Making Buffer generic is the more reliable option, but would require reintroducing a "typesVersions" entry to the NodeJS types to handle the inconsistency. A less invasive and more backwards compatible fix would be a minor change to the return types of slice() and subarray() in Buffer:

interface WithArrayBufferLike<TArrayBuffer extends ArrayBufferLike> {
    readonly buffer: TArrayBuffer;
}
interface Buffer extends Uint8Array {
    ...
    slice(start?: number, end?: number): Buffer & WithArrayBufferLike<ArrayBuffer>;
    subarray(start?: number, end?: number): Buffer & WithArrayBufferLike<this["buffer"]>;
    ...
}

I've tested both options with effect and either would resolve the issues.

@rbuckton
Copy link
Member Author

A fix for both the failing DefinitelyTyped tests and the necessary changes to Buffer to address the errors reported in effect can be found here: DefinitelyTyped/DefinitelyTyped#70390

@jakebailey
Copy link
Member

Based on the design meeting, is it the case that we just don't have any better options?

If there's a future where we gain HKT, would the type parameters on these declarations change? Once we add them, I would think we're stuck with them for good.

@rbuckton
Copy link
Member Author

Based on the design meeting, is it the case that we just don't have any better options?

IIRC, the only real alternative we discussed in the design meeting was leaving the typed arrays as-is and making the DOM and NodeJS types more lenient, but that doesn't help google-webfonts-helper, mapbox-gl-js, pixijs, or any other project that depends on a 3rd party package that specifically expects ArrayBuffer. This change results in a far more accurate type that addresses DOM, NodeJS, and 3rd party package types.

If there's a future where we gain HKT, would the type parameters on these declarations change? Once we add them, I would think we're stuck with them for good.

I investigated how HKTs might affect typed arrays and we would still have this type parameter in this position for the actual typed array instance types, so HKTs wouldn't change anything here, they would only make the declarations less repetitive.

@jakebailey
Copy link
Member

@typescript-bot test it

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 19, 2024

Starting jobs; this comment will be updated as builds start and complete.

Command Status Results
test top400 ✅ Started ✅ Results
user test this ✅ Started 👀 Results
run dt ✅ Started 👀 Results
perf test this faster ✅ Started 👀 Results

@typescript-bot
Copy link
Collaborator

Hey @jakebailey, the results of running the DT tests are ready.

There were interesting changes:

Changes are too big to display here, please check the log.

You can check the log here.

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the user tests with tsc comparing main and refs/pull/59417/merge:

Something interesting changed - please have a look.

Details

bcryptjs

/mnt/ts_downloads/_/m/bcryptjs/tsconfig.json

  • [NEW] error TS2345: Argument of type 'number[] | Int32Array<ArrayBuffer>' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)
  • [MISSING] error TS2345: Argument of type 'Int32Array | number[]' is not assignable to parameter of type 'number[]'.
    • /mnt/ts_downloads/_/m/bcryptjs/node_modules/bcryptjs/src/bcrypt/impl.js(516,22)

effect

tsconfig.json

tsconfig.build.json

tsconfig.base.json

@typescript-bot
Copy link
Collaborator

@jakebailey
The results of the perf run you requested are in!

Here they are:

tsc

Comparison Report - baseline..pr
Metric baseline pr Delta Best Worst p-value
Compiler-Unions - node (v18.15.0, x64)
Errors 30 30 ~ ~ ~ p=1.000 n=6
Symbols 62,153 62,340 +187 (+ 0.30%) ~ ~ p=0.001 n=6
Types 50,242 50,378 +136 (+ 0.27%) ~ ~ p=0.001 n=6
Memory used 193,608k (± 0.95%) 195,046k (± 0.95%) +1,438k (+ 0.74%) 192,655k 196,319k p=0.031 n=6
Parse Time 1.30s (± 0.40%) 1.30s (± 0.58%) ~ 1.29s 1.31s p=0.784 n=6
Bind Time 0.71s 0.71s ~ ~ ~ p=1.000 n=6
Check Time 9.58s (± 0.38%) 9.54s (± 0.31%) ~ 9.51s 9.58s p=0.075 n=6
Emit Time 2.72s (± 0.55%) 2.72s (± 0.66%) ~ 2.70s 2.75s p=0.680 n=6
Total Time 14.31s (± 0.33%) 14.28s (± 0.32%) ~ 14.21s 14.35s p=0.295 n=6
angular-1 - node (v18.15.0, x64)
Errors 7 7 ~ ~ ~ p=1.000 n=6
Symbols 945,753 947,121 +1,368 (+ 0.14%) ~ ~ p=0.001 n=6
Types 410,067 410,756 +689 (+ 0.17%) ~ ~ p=0.001 n=6
Memory used 1,222,725k (± 0.00%) 1,223,898k (± 0.00%) +1,173k (+ 0.10%) 1,223,866k 1,223,960k p=0.005 n=6
Parse Time 7.91s (± 0.45%) 7.91s (± 0.92%) ~ 7.81s 8.00s p=1.000 n=6
Bind Time 2.22s (± 0.75%) 2.24s (± 0.34%) +0.02s (+ 0.83%) 2.23s 2.25s p=0.046 n=6
Check Time 36.38s (± 0.32%) 36.48s (± 0.24%) ~ 36.38s 36.58s p=0.127 n=6
Emit Time 17.87s (± 0.38%) 17.96s (± 0.87%) ~ 17.75s 18.17s p=0.298 n=6
Total Time 64.38s (± 0.20%) 64.59s (± 0.29%) ~ 64.33s 64.86s p=0.092 n=6
mui-docs - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 2,529,471 2,529,609 +138 (+ 0.01%) ~ ~ p=0.001 n=6
Types 936,018 936,053 +35 (+ 0.00%) ~ ~ p=0.001 n=6
Memory used 2,364,709k (± 0.00%) 2,365,022k (± 0.00%) +313k (+ 0.01%) 2,365,000k 2,365,043k p=0.005 n=6
Parse Time 9.41s (± 0.21%) 9.42s (± 0.36%) ~ 9.38s 9.46s p=0.808 n=6
Bind Time 2.18s (± 0.79%) 2.18s (± 0.24%) ~ 2.18s 2.19s p=0.667 n=6
Check Time 73.27s (± 0.81%) 72.97s (± 0.56%) ~ 72.46s 73.53s p=0.298 n=6
Emit Time 0.62s (±133.10%) 0.27s (± 1.50%) 🟩-0.35s (-56.06%) 0.27s 0.28s p=0.007 n=6
Total Time 85.48s (± 1.57%) 84.84s (± 0.49%) ~ 84.38s 85.41s p=0.378 n=6
self-build-src - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,246,552 1,249,609 +3,057 (+ 0.25%) ~ ~ p=0.001 n=6
Types 264,445 264,777 +332 (+ 0.13%) ~ ~ p=0.001 n=6
Memory used 2,399,182k (± 0.02%) 2,402,977k (± 0.02%) +3,795k (+ 0.16%) 2,402,207k 2,403,692k p=0.005 n=6
Parse Time 5.09s (± 1.40%) 5.12s (± 1.25%) ~ 5.02s 5.18s p=0.630 n=6
Bind Time 1.92s (± 0.43%) 1.92s (± 0.71%) ~ 1.90s 1.94s p=0.282 n=6
Check Time 34.86s (± 0.24%) 35.01s (± 0.73%) ~ 34.78s 35.38s p=0.471 n=6
Emit Time 3.03s (± 3.62%) 3.09s (± 4.26%) +0.06s (+ 2.03%) 3.02s 3.36s p=0.044 n=6
Total Time 44.90s (± 0.24%) 45.14s (± 0.52%) ~ 44.91s 45.42s p=0.092 n=6
self-build-src-public-api - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 1,246,552 1,249,609 +3,057 (+ 0.25%) ~ ~ p=0.001 n=6
Types 264,445 264,777 +332 (+ 0.13%) ~ ~ p=0.001 n=6
Memory used 2,473,967k (± 0.02%) 2,478,113k (± 0.03%) +4,145k (+ 0.17%) 2,477,443k 2,479,326k p=0.005 n=6
Parse Time 5.25s (± 0.43%) 5.26s (± 0.74%) ~ 5.21s 5.32s p=0.470 n=6
Bind Time 1.72s (± 0.95%) 1.72s (± 0.86%) ~ 1.70s 1.73s p=0.934 n=6
Check Time 35.20s (± 0.28%) 35.18s (± 0.24%) ~ 35.03s 35.28s p=0.873 n=6
Emit Time 3.01s (± 0.80%) 2.99s (± 1.43%) ~ 2.94s 3.05s p=0.378 n=6
Total Time 45.19s (± 0.22%) 45.18s (± 0.19%) ~ 45.05s 45.32s p=1.000 n=6
self-compiler - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 259,902 260,662 +760 (+ 0.29%) ~ ~ p=0.001 n=6
Types 106,141 106,205 +64 (+ 0.06%) ~ ~ p=0.001 n=6
Memory used 435,603k (± 0.02%) 436,115k (± 0.03%) +512k (+ 0.12%) 435,989k 436,335k p=0.005 n=6
Parse Time 3.43s (± 0.97%) 3.42s (± 0.30%) ~ 3.40s 3.43s p=0.513 n=6
Bind Time 1.30s (± 0.63%) 1.29s (± 1.55%) ~ 1.26s 1.31s p=0.849 n=6
Check Time 18.11s (± 0.40%) 18.15s (± 0.56%) ~ 18.04s 18.28s p=0.572 n=6
Emit Time 1.53s (± 0.89%) 1.53s (± 1.78%) ~ 1.50s 1.57s p=1.000 n=6
Total Time 24.37s (± 0.38%) 24.39s (± 0.44%) ~ 24.27s 24.56s p=0.936 n=6
ts-pre-modules - node (v18.15.0, x64)
Errors 68 68 ~ ~ ~ p=1.000 n=6
Symbols 225,018 225,916 +898 (+ 0.40%) ~ ~ p=0.001 n=6
Types 94,249 94,414 +165 (+ 0.18%) ~ ~ p=0.001 n=6
Memory used 370,254k (± 0.02%) 370,873k (± 0.02%) +619k (+ 0.17%) 370,765k 370,982k p=0.005 n=6
Parse Time 2.77s (± 0.74%) 2.77s (± 1.09%) ~ 2.73s 2.81s p=0.685 n=6
Bind Time 1.57s (± 0.80%) 1.58s (± 1.52%) ~ 1.55s 1.62s p=0.565 n=6
Check Time 15.78s (± 0.56%) 15.77s (± 0.36%) ~ 15.69s 15.84s p=1.000 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 20.12s (± 0.52%) 20.11s (± 0.40%) ~ 20.00s 20.20s p=0.873 n=6
vscode - node (v18.15.0, x64)
Errors 1 1 ~ ~ ~ p=1.000 n=6
Symbols 3,091,783 3,094,298 +2,515 (+ 0.08%) ~ ~ p=0.001 n=6
Types 1,065,623 1,067,065 +1,442 (+ 0.14%) ~ ~ p=0.001 n=6
Memory used 3,189,843k (± 0.00%) 3,192,212k (± 0.00%) +2,369k (+ 0.07%) 3,192,153k 3,192,263k p=0.005 n=6
Parse Time 13.95s (± 0.16%) 13.94s (± 0.26%) ~ 13.89s 13.98s p=0.747 n=6
Bind Time 4.55s (± 1.90%) 4.43s (± 2.09%) -0.12s (- 2.67%) 4.35s 4.59s p=0.043 n=6
Check Time 81.98s (± 0.33%) 81.85s (± 0.44%) ~ 81.54s 82.51s p=0.298 n=6
Emit Time 22.33s (± 0.24%) 22.39s (± 0.68%) ~ 22.30s 22.70s p=0.574 n=6
Total Time 122.82s (± 0.25%) 122.61s (± 0.29%) ~ 122.31s 123.11s p=0.230 n=6
webpack - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 277,157 278,948 +1,791 (+ 0.65%) ~ ~ p=0.001 n=6
Types 112,949 113,680 +731 (+ 0.65%) ~ ~ p=0.001 n=6
Memory used 426,977k (± 0.02%) 428,273k (± 0.02%) +1,297k (+ 0.30%) 428,151k 428,360k p=0.005 n=6
Parse Time 4.90s (± 0.31%) 4.91s (± 0.47%) ~ 4.87s 4.93s p=0.560 n=6
Bind Time 2.13s (± 0.57%) 2.12s (± 0.81%) ~ 2.10s 2.15s p=0.219 n=6
Check Time 21.78s (± 0.36%) 21.76s (± 0.51%) ~ 21.63s 21.94s p=0.468 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 28.82s (± 0.25%) 28.79s (± 0.35%) ~ 28.66s 28.93s p=0.468 n=6
xstate-main - node (v18.15.0, x64)
Errors 0 0 ~ ~ ~ p=1.000 n=6
Symbols 531,594 531,713 +119 (+ 0.02%) ~ ~ p=0.001 n=6
Types 181,677 181,699 +22 (+ 0.01%) ~ ~ p=0.001 n=6
Memory used 463,671k (± 0.01%) 464,004k (± 0.02%) +333k (+ 0.07%) 463,897k 464,161k p=0.005 n=6
Parse Time 3.12s (± 0.94%) 3.11s (± 0.94%) ~ 3.08s 3.15s p=0.746 n=6
Bind Time 1.11s 1.11s (± 0.46%) ~ 1.11s 1.12s p=0.174 n=6
Check Time 18.21s (± 0.34%) 18.23s (± 0.19%) ~ 18.17s 18.27s p=0.629 n=6
Emit Time 0.00s 0.00s ~ ~ ~ p=1.000 n=6
Total Time 22.45s (± 0.33%) 22.46s (± 0.23%) ~ 22.38s 22.51s p=0.808 n=6
System info unknown
Hosts
  • node (v18.15.0, x64)
Scenarios
  • Compiler-Unions - node (v18.15.0, x64)
  • angular-1 - node (v18.15.0, x64)
  • mui-docs - node (v18.15.0, x64)
  • self-build-src - node (v18.15.0, x64)
  • self-build-src-public-api - node (v18.15.0, x64)
  • self-compiler - node (v18.15.0, x64)
  • ts-pre-modules - node (v18.15.0, x64)
  • vscode - node (v18.15.0, x64)
  • webpack - node (v18.15.0, x64)
  • xstate-main - node (v18.15.0, x64)
Benchmark Name Iterations
Current pr 6
Baseline baseline 6

Developer Information:

Download Benchmarks

@typescript-bot
Copy link
Collaborator

@jakebailey Here are the results of running the top 400 repos with tsc comparing main and refs/pull/59417/merge:

Everything looks good!

@jakebailey
Copy link
Member

I assume DefinitelyTyped/DefinitelyTyped#70390 fixes everything above, right?

Copy link
Member

@jakebailey jakebailey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving because I believe this matches the outcome of the design meeting and I know you want to get this all through.

@rbuckton
Copy link
Member Author

I assume DefinitelyTyped/DefinitelyTyped#70390 fixes everything above, right?

I believe so, yes.

@rbuckton rbuckton merged commit e5758ab into main Sep 24, 2024
32 checks passed
@rbuckton rbuckton deleted the generic-typed-array-simple branch September 24, 2024 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants