@expo/simulator-launcher 27.5.0 → 27.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +102 -18
  2. package/dist/index.js +3152 -69
  3. package/package.json +4 -2
package/dist/index.js CHANGED
@@ -1,10 +1,2545 @@
1
1
  /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
2
  /******/ var __webpack_modules__ = ({
4
3
 
4
+ /***/ 2370:
5
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
6
+
7
+ const ANY = Symbol('SemVer ANY')
8
+ // hoisted class for cyclic dependency
9
+ class Comparator {
10
+ static get ANY () {
11
+ return ANY
12
+ }
13
+
14
+ constructor (comp, options) {
15
+ options = parseOptions(options)
16
+
17
+ if (comp instanceof Comparator) {
18
+ if (comp.loose === !!options.loose) {
19
+ return comp
20
+ } else {
21
+ comp = comp.value
22
+ }
23
+ }
24
+
25
+ comp = comp.trim().split(/\s+/).join(' ')
26
+ debug('comparator', comp, options)
27
+ this.options = options
28
+ this.loose = !!options.loose
29
+ this.parse(comp)
30
+
31
+ if (this.semver === ANY) {
32
+ this.value = ''
33
+ } else {
34
+ this.value = this.operator + this.semver.version
35
+ }
36
+
37
+ debug('comp', this)
38
+ }
39
+
40
+ parse (comp) {
41
+ const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
42
+ const m = comp.match(r)
43
+
44
+ if (!m) {
45
+ throw new TypeError(`Invalid comparator: ${comp}`)
46
+ }
47
+
48
+ this.operator = m[1] !== undefined ? m[1] : ''
49
+ if (this.operator === '=') {
50
+ this.operator = ''
51
+ }
52
+
53
+ // if it literally is just '>' or '' then allow anything.
54
+ if (!m[2]) {
55
+ this.semver = ANY
56
+ } else {
57
+ this.semver = new SemVer(m[2], this.options.loose)
58
+ }
59
+ }
60
+
61
+ toString () {
62
+ return this.value
63
+ }
64
+
65
+ test (version) {
66
+ debug('Comparator.test', version, this.options.loose)
67
+
68
+ if (this.semver === ANY || version === ANY) {
69
+ return true
70
+ }
71
+
72
+ if (typeof version === 'string') {
73
+ try {
74
+ version = new SemVer(version, this.options)
75
+ } catch (er) {
76
+ return false
77
+ }
78
+ }
79
+
80
+ return cmp(version, this.operator, this.semver, this.options)
81
+ }
82
+
83
+ intersects (comp, options) {
84
+ if (!(comp instanceof Comparator)) {
85
+ throw new TypeError('a Comparator is required')
86
+ }
87
+
88
+ if (this.operator === '') {
89
+ if (this.value === '') {
90
+ return true
91
+ }
92
+ return new Range(comp.value, options).test(this.value)
93
+ } else if (comp.operator === '') {
94
+ if (comp.value === '') {
95
+ return true
96
+ }
97
+ return new Range(this.value, options).test(comp.semver)
98
+ }
99
+
100
+ options = parseOptions(options)
101
+
102
+ // Special cases where nothing can possibly be lower
103
+ if (options.includePrerelease &&
104
+ (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {
105
+ return false
106
+ }
107
+ if (!options.includePrerelease &&
108
+ (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {
109
+ return false
110
+ }
111
+
112
+ // Same direction increasing (> or >=)
113
+ if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {
114
+ return true
115
+ }
116
+ // Same direction decreasing (< or <=)
117
+ if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {
118
+ return true
119
+ }
120
+ // same SemVer and both sides are inclusive (<= or >=)
121
+ if (
122
+ (this.semver.version === comp.semver.version) &&
123
+ this.operator.includes('=') && comp.operator.includes('=')) {
124
+ return true
125
+ }
126
+ // opposite directions less than
127
+ if (cmp(this.semver, '<', comp.semver, options) &&
128
+ this.operator.startsWith('>') && comp.operator.startsWith('<')) {
129
+ return true
130
+ }
131
+ // opposite directions greater than
132
+ if (cmp(this.semver, '>', comp.semver, options) &&
133
+ this.operator.startsWith('<') && comp.operator.startsWith('>')) {
134
+ return true
135
+ }
136
+ return false
137
+ }
138
+ }
139
+
140
+ module.exports = Comparator
141
+
142
+ const parseOptions = __nccwpck_require__(1629)
143
+ const { safeRe: re, t } = __nccwpck_require__(4376)
144
+ const cmp = __nccwpck_require__(869)
145
+ const debug = __nccwpck_require__(9394)
146
+ const SemVer = __nccwpck_require__(1886)
147
+ const Range = __nccwpck_require__(597)
148
+
149
+
150
+ /***/ }),
151
+
152
+ /***/ 597:
153
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
154
+
155
+ // hoisted class for cyclic dependency
156
+ class Range {
157
+ constructor (range, options) {
158
+ options = parseOptions(options)
159
+
160
+ if (range instanceof Range) {
161
+ if (
162
+ range.loose === !!options.loose &&
163
+ range.includePrerelease === !!options.includePrerelease
164
+ ) {
165
+ return range
166
+ } else {
167
+ return new Range(range.raw, options)
168
+ }
169
+ }
170
+
171
+ if (range instanceof Comparator) {
172
+ // just put it in the set and return
173
+ this.raw = range.value
174
+ this.set = [[range]]
175
+ this.format()
176
+ return this
177
+ }
178
+
179
+ this.options = options
180
+ this.loose = !!options.loose
181
+ this.includePrerelease = !!options.includePrerelease
182
+
183
+ // First reduce all whitespace as much as possible so we do not have to rely
184
+ // on potentially slow regexes like \s*. This is then stored and used for
185
+ // future error messages as well.
186
+ this.raw = range
187
+ .trim()
188
+ .split(/\s+/)
189
+ .join(' ')
190
+
191
+ // First, split on ||
192
+ this.set = this.raw
193
+ .split('||')
194
+ // map the range to a 2d array of comparators
195
+ .map(r => this.parseRange(r.trim()))
196
+ // throw out any comparator lists that are empty
197
+ // this generally means that it was not a valid range, which is allowed
198
+ // in loose mode, but will still throw if the WHOLE range is invalid.
199
+ .filter(c => c.length)
200
+
201
+ if (!this.set.length) {
202
+ throw new TypeError(`Invalid SemVer Range: ${this.raw}`)
203
+ }
204
+
205
+ // if we have any that are not the null set, throw out null sets.
206
+ if (this.set.length > 1) {
207
+ // keep the first one, in case they're all null sets
208
+ const first = this.set[0]
209
+ this.set = this.set.filter(c => !isNullSet(c[0]))
210
+ if (this.set.length === 0) {
211
+ this.set = [first]
212
+ } else if (this.set.length > 1) {
213
+ // if we have any that are *, then the range is just *
214
+ for (const c of this.set) {
215
+ if (c.length === 1 && isAny(c[0])) {
216
+ this.set = [c]
217
+ break
218
+ }
219
+ }
220
+ }
221
+ }
222
+
223
+ this.format()
224
+ }
225
+
226
+ format () {
227
+ this.range = this.set
228
+ .map((comps) => comps.join(' ').trim())
229
+ .join('||')
230
+ .trim()
231
+ return this.range
232
+ }
233
+
234
+ toString () {
235
+ return this.range
236
+ }
237
+
238
+ parseRange (range) {
239
+ // memoize range parsing for performance.
240
+ // this is a very hot path, and fully deterministic.
241
+ const memoOpts =
242
+ (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |
243
+ (this.options.loose && FLAG_LOOSE)
244
+ const memoKey = memoOpts + ':' + range
245
+ const cached = cache.get(memoKey)
246
+ if (cached) {
247
+ return cached
248
+ }
249
+
250
+ const loose = this.options.loose
251
+ // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
252
+ const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
253
+ range = range.replace(hr, hyphenReplace(this.options.includePrerelease))
254
+ debug('hyphen replace', range)
255
+
256
+ // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
257
+ range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
258
+ debug('comparator trim', range)
259
+
260
+ // `~ 1.2.3` => `~1.2.3`
261
+ range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
262
+ debug('tilde trim', range)
263
+
264
+ // `^ 1.2.3` => `^1.2.3`
265
+ range = range.replace(re[t.CARETTRIM], caretTrimReplace)
266
+ debug('caret trim', range)
267
+
268
+ // At this point, the range is completely trimmed and
269
+ // ready to be split into comparators.
270
+
271
+ let rangeList = range
272
+ .split(' ')
273
+ .map(comp => parseComparator(comp, this.options))
274
+ .join(' ')
275
+ .split(/\s+/)
276
+ // >=0.0.0 is equivalent to *
277
+ .map(comp => replaceGTE0(comp, this.options))
278
+
279
+ if (loose) {
280
+ // in loose mode, throw out any that are not valid comparators
281
+ rangeList = rangeList.filter(comp => {
282
+ debug('loose invalid filter', comp, this.options)
283
+ return !!comp.match(re[t.COMPARATORLOOSE])
284
+ })
285
+ }
286
+ debug('range list', rangeList)
287
+
288
+ // if any comparators are the null set, then replace with JUST null set
289
+ // if more than one comparator, remove any * comparators
290
+ // also, don't include the same comparator more than once
291
+ const rangeMap = new Map()
292
+ const comparators = rangeList.map(comp => new Comparator(comp, this.options))
293
+ for (const comp of comparators) {
294
+ if (isNullSet(comp)) {
295
+ return [comp]
296
+ }
297
+ rangeMap.set(comp.value, comp)
298
+ }
299
+ if (rangeMap.size > 1 && rangeMap.has('')) {
300
+ rangeMap.delete('')
301
+ }
302
+
303
+ const result = [...rangeMap.values()]
304
+ cache.set(memoKey, result)
305
+ return result
306
+ }
307
+
308
+ intersects (range, options) {
309
+ if (!(range instanceof Range)) {
310
+ throw new TypeError('a Range is required')
311
+ }
312
+
313
+ return this.set.some((thisComparators) => {
314
+ return (
315
+ isSatisfiable(thisComparators, options) &&
316
+ range.set.some((rangeComparators) => {
317
+ return (
318
+ isSatisfiable(rangeComparators, options) &&
319
+ thisComparators.every((thisComparator) => {
320
+ return rangeComparators.every((rangeComparator) => {
321
+ return thisComparator.intersects(rangeComparator, options)
322
+ })
323
+ })
324
+ )
325
+ })
326
+ )
327
+ })
328
+ }
329
+
330
+ // if ANY of the sets match ALL of its comparators, then pass
331
+ test (version) {
332
+ if (!version) {
333
+ return false
334
+ }
335
+
336
+ if (typeof version === 'string') {
337
+ try {
338
+ version = new SemVer(version, this.options)
339
+ } catch (er) {
340
+ return false
341
+ }
342
+ }
343
+
344
+ for (let i = 0; i < this.set.length; i++) {
345
+ if (testSet(this.set[i], version, this.options)) {
346
+ return true
347
+ }
348
+ }
349
+ return false
350
+ }
351
+ }
352
+
353
+ module.exports = Range
354
+
355
+ const LRU = __nccwpck_require__(8860)
356
+ const cache = new LRU()
357
+
358
+ const parseOptions = __nccwpck_require__(1629)
359
+ const Comparator = __nccwpck_require__(2370)
360
+ const debug = __nccwpck_require__(9394)
361
+ const SemVer = __nccwpck_require__(1886)
362
+ const {
363
+ safeRe: re,
364
+ t,
365
+ comparatorTrimReplace,
366
+ tildeTrimReplace,
367
+ caretTrimReplace,
368
+ } = __nccwpck_require__(4376)
369
+ const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = __nccwpck_require__(756)
370
+
371
+ const isNullSet = c => c.value === '<0.0.0-0'
372
+ const isAny = c => c.value === ''
373
+
374
+ // take a set of comparators and determine whether there
375
+ // exists a version which can satisfy it
376
+ const isSatisfiable = (comparators, options) => {
377
+ let result = true
378
+ const remainingComparators = comparators.slice()
379
+ let testComparator = remainingComparators.pop()
380
+
381
+ while (result && remainingComparators.length) {
382
+ result = remainingComparators.every((otherComparator) => {
383
+ return testComparator.intersects(otherComparator, options)
384
+ })
385
+
386
+ testComparator = remainingComparators.pop()
387
+ }
388
+
389
+ return result
390
+ }
391
+
392
+ // comprised of xranges, tildes, stars, and gtlt's at this point.
393
+ // already replaced the hyphen ranges
394
+ // turn into a set of JUST comparators.
395
+ const parseComparator = (comp, options) => {
396
+ debug('comp', comp, options)
397
+ comp = replaceCarets(comp, options)
398
+ debug('caret', comp)
399
+ comp = replaceTildes(comp, options)
400
+ debug('tildes', comp)
401
+ comp = replaceXRanges(comp, options)
402
+ debug('xrange', comp)
403
+ comp = replaceStars(comp, options)
404
+ debug('stars', comp)
405
+ return comp
406
+ }
407
+
408
+ const isX = id => !id || id.toLowerCase() === 'x' || id === '*'
409
+
410
+ // ~, ~> --> * (any, kinda silly)
411
+ // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
412
+ // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
413
+ // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
414
+ // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
415
+ // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
416
+ // ~0.0.1 --> >=0.0.1 <0.1.0-0
417
+ const replaceTildes = (comp, options) => {
418
+ return comp
419
+ .trim()
420
+ .split(/\s+/)
421
+ .map((c) => replaceTilde(c, options))
422
+ .join(' ')
423
+ }
424
+
425
+ const replaceTilde = (comp, options) => {
426
+ const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
427
+ return comp.replace(r, (_, M, m, p, pr) => {
428
+ debug('tilde', comp, _, M, m, p, pr)
429
+ let ret
430
+
431
+ if (isX(M)) {
432
+ ret = ''
433
+ } else if (isX(m)) {
434
+ ret = `>=${M}.0.0 <${+M + 1}.0.0-0`
435
+ } else if (isX(p)) {
436
+ // ~1.2 == >=1.2.0 <1.3.0-0
437
+ ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`
438
+ } else if (pr) {
439
+ debug('replaceTilde pr', pr)
440
+ ret = `>=${M}.${m}.${p}-${pr
441
+ } <${M}.${+m + 1}.0-0`
442
+ } else {
443
+ // ~1.2.3 == >=1.2.3 <1.3.0-0
444
+ ret = `>=${M}.${m}.${p
445
+ } <${M}.${+m + 1}.0-0`
446
+ }
447
+
448
+ debug('tilde return', ret)
449
+ return ret
450
+ })
451
+ }
452
+
453
+ // ^ --> * (any, kinda silly)
454
+ // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
455
+ // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
456
+ // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
457
+ // ^1.2.3 --> >=1.2.3 <2.0.0-0
458
+ // ^1.2.0 --> >=1.2.0 <2.0.0-0
459
+ // ^0.0.1 --> >=0.0.1 <0.0.2-0
460
+ // ^0.1.0 --> >=0.1.0 <0.2.0-0
461
+ const replaceCarets = (comp, options) => {
462
+ return comp
463
+ .trim()
464
+ .split(/\s+/)
465
+ .map((c) => replaceCaret(c, options))
466
+ .join(' ')
467
+ }
468
+
469
+ const replaceCaret = (comp, options) => {
470
+ debug('caret', comp, options)
471
+ const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
472
+ const z = options.includePrerelease ? '-0' : ''
473
+ return comp.replace(r, (_, M, m, p, pr) => {
474
+ debug('caret', comp, _, M, m, p, pr)
475
+ let ret
476
+
477
+ if (isX(M)) {
478
+ ret = ''
479
+ } else if (isX(m)) {
480
+ ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`
481
+ } else if (isX(p)) {
482
+ if (M === '0') {
483
+ ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`
484
+ } else {
485
+ ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`
486
+ }
487
+ } else if (pr) {
488
+ debug('replaceCaret pr', pr)
489
+ if (M === '0') {
490
+ if (m === '0') {
491
+ ret = `>=${M}.${m}.${p}-${pr
492
+ } <${M}.${m}.${+p + 1}-0`
493
+ } else {
494
+ ret = `>=${M}.${m}.${p}-${pr
495
+ } <${M}.${+m + 1}.0-0`
496
+ }
497
+ } else {
498
+ ret = `>=${M}.${m}.${p}-${pr
499
+ } <${+M + 1}.0.0-0`
500
+ }
501
+ } else {
502
+ debug('no pr')
503
+ if (M === '0') {
504
+ if (m === '0') {
505
+ ret = `>=${M}.${m}.${p
506
+ }${z} <${M}.${m}.${+p + 1}-0`
507
+ } else {
508
+ ret = `>=${M}.${m}.${p
509
+ }${z} <${M}.${+m + 1}.0-0`
510
+ }
511
+ } else {
512
+ ret = `>=${M}.${m}.${p
513
+ } <${+M + 1}.0.0-0`
514
+ }
515
+ }
516
+
517
+ debug('caret return', ret)
518
+ return ret
519
+ })
520
+ }
521
+
522
+ const replaceXRanges = (comp, options) => {
523
+ debug('replaceXRanges', comp, options)
524
+ return comp
525
+ .split(/\s+/)
526
+ .map((c) => replaceXRange(c, options))
527
+ .join(' ')
528
+ }
529
+
530
+ const replaceXRange = (comp, options) => {
531
+ comp = comp.trim()
532
+ const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
533
+ return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
534
+ debug('xRange', comp, ret, gtlt, M, m, p, pr)
535
+ const xM = isX(M)
536
+ const xm = xM || isX(m)
537
+ const xp = xm || isX(p)
538
+ const anyX = xp
539
+
540
+ if (gtlt === '=' && anyX) {
541
+ gtlt = ''
542
+ }
543
+
544
+ // if we're including prereleases in the match, then we need
545
+ // to fix this to -0, the lowest possible prerelease value
546
+ pr = options.includePrerelease ? '-0' : ''
547
+
548
+ if (xM) {
549
+ if (gtlt === '>' || gtlt === '<') {
550
+ // nothing is allowed
551
+ ret = '<0.0.0-0'
552
+ } else {
553
+ // nothing is forbidden
554
+ ret = '*'
555
+ }
556
+ } else if (gtlt && anyX) {
557
+ // we know patch is an x, because we have any x at all.
558
+ // replace X with 0
559
+ if (xm) {
560
+ m = 0
561
+ }
562
+ p = 0
563
+
564
+ if (gtlt === '>') {
565
+ // >1 => >=2.0.0
566
+ // >1.2 => >=1.3.0
567
+ gtlt = '>='
568
+ if (xm) {
569
+ M = +M + 1
570
+ m = 0
571
+ p = 0
572
+ } else {
573
+ m = +m + 1
574
+ p = 0
575
+ }
576
+ } else if (gtlt === '<=') {
577
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
578
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
579
+ gtlt = '<'
580
+ if (xm) {
581
+ M = +M + 1
582
+ } else {
583
+ m = +m + 1
584
+ }
585
+ }
586
+
587
+ if (gtlt === '<') {
588
+ pr = '-0'
589
+ }
590
+
591
+ ret = `${gtlt + M}.${m}.${p}${pr}`
592
+ } else if (xm) {
593
+ ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`
594
+ } else if (xp) {
595
+ ret = `>=${M}.${m}.0${pr
596
+ } <${M}.${+m + 1}.0-0`
597
+ }
598
+
599
+ debug('xRange return', ret)
600
+
601
+ return ret
602
+ })
603
+ }
604
+
605
+ // Because * is AND-ed with everything else in the comparator,
606
+ // and '' means "any version", just remove the *s entirely.
607
+ const replaceStars = (comp, options) => {
608
+ debug('replaceStars', comp, options)
609
+ // Looseness is ignored here. star is always as loose as it gets!
610
+ return comp
611
+ .trim()
612
+ .replace(re[t.STAR], '')
613
+ }
614
+
615
+ const replaceGTE0 = (comp, options) => {
616
+ debug('replaceGTE0', comp, options)
617
+ return comp
618
+ .trim()
619
+ .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')
620
+ }
621
+
622
+ // This function is passed to string.replace(re[t.HYPHENRANGE])
623
+ // M, m, patch, prerelease, build
624
+ // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
625
+ // 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
626
+ // 1.2 - 3.4 => >=1.2.0 <3.5.0-0
627
+ // TODO build?
628
+ const hyphenReplace = incPr => ($0,
629
+ from, fM, fm, fp, fpr, fb,
630
+ to, tM, tm, tp, tpr) => {
631
+ if (isX(fM)) {
632
+ from = ''
633
+ } else if (isX(fm)) {
634
+ from = `>=${fM}.0.0${incPr ? '-0' : ''}`
635
+ } else if (isX(fp)) {
636
+ from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`
637
+ } else if (fpr) {
638
+ from = `>=${from}`
639
+ } else {
640
+ from = `>=${from}${incPr ? '-0' : ''}`
641
+ }
642
+
643
+ if (isX(tM)) {
644
+ to = ''
645
+ } else if (isX(tm)) {
646
+ to = `<${+tM + 1}.0.0-0`
647
+ } else if (isX(tp)) {
648
+ to = `<${tM}.${+tm + 1}.0-0`
649
+ } else if (tpr) {
650
+ to = `<=${tM}.${tm}.${tp}-${tpr}`
651
+ } else if (incPr) {
652
+ to = `<${tM}.${tm}.${+tp + 1}-0`
653
+ } else {
654
+ to = `<=${to}`
655
+ }
656
+
657
+ return `${from} ${to}`.trim()
658
+ }
659
+
660
+ const testSet = (set, version, options) => {
661
+ for (let i = 0; i < set.length; i++) {
662
+ if (!set[i].test(version)) {
663
+ return false
664
+ }
665
+ }
666
+
667
+ if (version.prerelease.length && !options.includePrerelease) {
668
+ // Find the set of versions that are allowed to have prereleases
669
+ // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
670
+ // That should allow `1.2.3-pr.2` to pass.
671
+ // However, `1.2.4-alpha.notready` should NOT be allowed,
672
+ // even though it's within the range set by the comparators.
673
+ for (let i = 0; i < set.length; i++) {
674
+ debug(set[i].semver)
675
+ if (set[i].semver === Comparator.ANY) {
676
+ continue
677
+ }
678
+
679
+ if (set[i].semver.prerelease.length > 0) {
680
+ const allowed = set[i].semver
681
+ if (allowed.major === version.major &&
682
+ allowed.minor === version.minor &&
683
+ allowed.patch === version.patch) {
684
+ return true
685
+ }
686
+ }
687
+ }
688
+
689
+ // Version has a -pre, but it's not one of the ones we like.
690
+ return false
691
+ }
692
+
693
+ return true
694
+ }
695
+
696
+
697
+ /***/ }),
698
+
699
+ /***/ 1886:
700
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
701
+
702
+ const debug = __nccwpck_require__(9394)
703
+ const { MAX_LENGTH, MAX_SAFE_INTEGER } = __nccwpck_require__(756)
704
+ const { safeRe: re, t } = __nccwpck_require__(4376)
705
+
706
+ const parseOptions = __nccwpck_require__(1629)
707
+ const { compareIdentifiers } = __nccwpck_require__(797)
708
+ class SemVer {
709
+ constructor (version, options) {
710
+ options = parseOptions(options)
711
+
712
+ if (version instanceof SemVer) {
713
+ if (version.loose === !!options.loose &&
714
+ version.includePrerelease === !!options.includePrerelease) {
715
+ return version
716
+ } else {
717
+ version = version.version
718
+ }
719
+ } else if (typeof version !== 'string') {
720
+ throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`)
721
+ }
722
+
723
+ if (version.length > MAX_LENGTH) {
724
+ throw new TypeError(
725
+ `version is longer than ${MAX_LENGTH} characters`
726
+ )
727
+ }
728
+
729
+ debug('SemVer', version, options)
730
+ this.options = options
731
+ this.loose = !!options.loose
732
+ // this isn't actually relevant for versions, but keep it so that we
733
+ // don't run into trouble passing this.options around.
734
+ this.includePrerelease = !!options.includePrerelease
735
+
736
+ const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
737
+
738
+ if (!m) {
739
+ throw new TypeError(`Invalid Version: ${version}`)
740
+ }
741
+
742
+ this.raw = version
743
+
744
+ // these are actually numbers
745
+ this.major = +m[1]
746
+ this.minor = +m[2]
747
+ this.patch = +m[3]
748
+
749
+ if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
750
+ throw new TypeError('Invalid major version')
751
+ }
752
+
753
+ if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
754
+ throw new TypeError('Invalid minor version')
755
+ }
756
+
757
+ if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
758
+ throw new TypeError('Invalid patch version')
759
+ }
760
+
761
+ // numberify any prerelease numeric ids
762
+ if (!m[4]) {
763
+ this.prerelease = []
764
+ } else {
765
+ this.prerelease = m[4].split('.').map((id) => {
766
+ if (/^[0-9]+$/.test(id)) {
767
+ const num = +id
768
+ if (num >= 0 && num < MAX_SAFE_INTEGER) {
769
+ return num
770
+ }
771
+ }
772
+ return id
773
+ })
774
+ }
775
+
776
+ this.build = m[5] ? m[5].split('.') : []
777
+ this.format()
778
+ }
779
+
780
+ format () {
781
+ this.version = `${this.major}.${this.minor}.${this.patch}`
782
+ if (this.prerelease.length) {
783
+ this.version += `-${this.prerelease.join('.')}`
784
+ }
785
+ return this.version
786
+ }
787
+
788
+ toString () {
789
+ return this.version
790
+ }
791
+
792
+ compare (other) {
793
+ debug('SemVer.compare', this.version, this.options, other)
794
+ if (!(other instanceof SemVer)) {
795
+ if (typeof other === 'string' && other === this.version) {
796
+ return 0
797
+ }
798
+ other = new SemVer(other, this.options)
799
+ }
800
+
801
+ if (other.version === this.version) {
802
+ return 0
803
+ }
804
+
805
+ return this.compareMain(other) || this.comparePre(other)
806
+ }
807
+
808
+ compareMain (other) {
809
+ if (!(other instanceof SemVer)) {
810
+ other = new SemVer(other, this.options)
811
+ }
812
+
813
+ return (
814
+ compareIdentifiers(this.major, other.major) ||
815
+ compareIdentifiers(this.minor, other.minor) ||
816
+ compareIdentifiers(this.patch, other.patch)
817
+ )
818
+ }
819
+
820
+ comparePre (other) {
821
+ if (!(other instanceof SemVer)) {
822
+ other = new SemVer(other, this.options)
823
+ }
824
+
825
+ // NOT having a prerelease is > having one
826
+ if (this.prerelease.length && !other.prerelease.length) {
827
+ return -1
828
+ } else if (!this.prerelease.length && other.prerelease.length) {
829
+ return 1
830
+ } else if (!this.prerelease.length && !other.prerelease.length) {
831
+ return 0
832
+ }
833
+
834
+ let i = 0
835
+ do {
836
+ const a = this.prerelease[i]
837
+ const b = other.prerelease[i]
838
+ debug('prerelease compare', i, a, b)
839
+ if (a === undefined && b === undefined) {
840
+ return 0
841
+ } else if (b === undefined) {
842
+ return 1
843
+ } else if (a === undefined) {
844
+ return -1
845
+ } else if (a === b) {
846
+ continue
847
+ } else {
848
+ return compareIdentifiers(a, b)
849
+ }
850
+ } while (++i)
851
+ }
852
+
853
+ compareBuild (other) {
854
+ if (!(other instanceof SemVer)) {
855
+ other = new SemVer(other, this.options)
856
+ }
857
+
858
+ let i = 0
859
+ do {
860
+ const a = this.build[i]
861
+ const b = other.build[i]
862
+ debug('build compare', i, a, b)
863
+ if (a === undefined && b === undefined) {
864
+ return 0
865
+ } else if (b === undefined) {
866
+ return 1
867
+ } else if (a === undefined) {
868
+ return -1
869
+ } else if (a === b) {
870
+ continue
871
+ } else {
872
+ return compareIdentifiers(a, b)
873
+ }
874
+ } while (++i)
875
+ }
876
+
877
+ // preminor will bump the version up to the next minor release, and immediately
878
+ // down to pre-release. premajor and prepatch work the same way.
879
+ inc (release, identifier, identifierBase) {
880
+ switch (release) {
881
+ case 'premajor':
882
+ this.prerelease.length = 0
883
+ this.patch = 0
884
+ this.minor = 0
885
+ this.major++
886
+ this.inc('pre', identifier, identifierBase)
887
+ break
888
+ case 'preminor':
889
+ this.prerelease.length = 0
890
+ this.patch = 0
891
+ this.minor++
892
+ this.inc('pre', identifier, identifierBase)
893
+ break
894
+ case 'prepatch':
895
+ // If this is already a prerelease, it will bump to the next version
896
+ // drop any prereleases that might already exist, since they are not
897
+ // relevant at this point.
898
+ this.prerelease.length = 0
899
+ this.inc('patch', identifier, identifierBase)
900
+ this.inc('pre', identifier, identifierBase)
901
+ break
902
+ // If the input is a non-prerelease version, this acts the same as
903
+ // prepatch.
904
+ case 'prerelease':
905
+ if (this.prerelease.length === 0) {
906
+ this.inc('patch', identifier, identifierBase)
907
+ }
908
+ this.inc('pre', identifier, identifierBase)
909
+ break
910
+
911
+ case 'major':
912
+ // If this is a pre-major version, bump up to the same major version.
913
+ // Otherwise increment major.
914
+ // 1.0.0-5 bumps to 1.0.0
915
+ // 1.1.0 bumps to 2.0.0
916
+ if (
917
+ this.minor !== 0 ||
918
+ this.patch !== 0 ||
919
+ this.prerelease.length === 0
920
+ ) {
921
+ this.major++
922
+ }
923
+ this.minor = 0
924
+ this.patch = 0
925
+ this.prerelease = []
926
+ break
927
+ case 'minor':
928
+ // If this is a pre-minor version, bump up to the same minor version.
929
+ // Otherwise increment minor.
930
+ // 1.2.0-5 bumps to 1.2.0
931
+ // 1.2.1 bumps to 1.3.0
932
+ if (this.patch !== 0 || this.prerelease.length === 0) {
933
+ this.minor++
934
+ }
935
+ this.patch = 0
936
+ this.prerelease = []
937
+ break
938
+ case 'patch':
939
+ // If this is not a pre-release version, it will increment the patch.
940
+ // If it is a pre-release it will bump up to the same patch version.
941
+ // 1.2.0-5 patches to 1.2.0
942
+ // 1.2.0 patches to 1.2.1
943
+ if (this.prerelease.length === 0) {
944
+ this.patch++
945
+ }
946
+ this.prerelease = []
947
+ break
948
+ // This probably shouldn't be used publicly.
949
+ // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
950
+ case 'pre': {
951
+ const base = Number(identifierBase) ? 1 : 0
952
+
953
+ if (!identifier && identifierBase === false) {
954
+ throw new Error('invalid increment argument: identifier is empty')
955
+ }
956
+
957
+ if (this.prerelease.length === 0) {
958
+ this.prerelease = [base]
959
+ } else {
960
+ let i = this.prerelease.length
961
+ while (--i >= 0) {
962
+ if (typeof this.prerelease[i] === 'number') {
963
+ this.prerelease[i]++
964
+ i = -2
965
+ }
966
+ }
967
+ if (i === -1) {
968
+ // didn't increment anything
969
+ if (identifier === this.prerelease.join('.') && identifierBase === false) {
970
+ throw new Error('invalid increment argument: identifier already exists')
971
+ }
972
+ this.prerelease.push(base)
973
+ }
974
+ }
975
+ if (identifier) {
976
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
977
+ // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
978
+ let prerelease = [identifier, base]
979
+ if (identifierBase === false) {
980
+ prerelease = [identifier]
981
+ }
982
+ if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
983
+ if (isNaN(this.prerelease[1])) {
984
+ this.prerelease = prerelease
985
+ }
986
+ } else {
987
+ this.prerelease = prerelease
988
+ }
989
+ }
990
+ break
991
+ }
992
+ default:
993
+ throw new Error(`invalid increment argument: ${release}`)
994
+ }
995
+ this.raw = this.format()
996
+ if (this.build.length) {
997
+ this.raw += `+${this.build.join('.')}`
998
+ }
999
+ return this
1000
+ }
1001
+ }
1002
+
1003
+ module.exports = SemVer
1004
+
1005
+
1006
+ /***/ }),
1007
+
1008
+ /***/ 9368:
1009
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1010
+
1011
+ const parse = __nccwpck_require__(4882)
1012
+ const clean = (version, options) => {
1013
+ const s = parse(version.trim().replace(/^[=v]+/, ''), options)
1014
+ return s ? s.version : null
1015
+ }
1016
+ module.exports = clean
1017
+
1018
+
1019
+ /***/ }),
1020
+
1021
+ /***/ 869:
1022
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1023
+
1024
+ const eq = __nccwpck_require__(4783)
1025
+ const neq = __nccwpck_require__(157)
1026
+ const gt = __nccwpck_require__(3110)
1027
+ const gte = __nccwpck_require__(9199)
1028
+ const lt = __nccwpck_require__(3769)
1029
+ const lte = __nccwpck_require__(4362)
1030
+
1031
+ const cmp = (a, op, b, loose) => {
1032
+ switch (op) {
1033
+ case '===':
1034
+ if (typeof a === 'object') {
1035
+ a = a.version
1036
+ }
1037
+ if (typeof b === 'object') {
1038
+ b = b.version
1039
+ }
1040
+ return a === b
1041
+
1042
+ case '!==':
1043
+ if (typeof a === 'object') {
1044
+ a = a.version
1045
+ }
1046
+ if (typeof b === 'object') {
1047
+ b = b.version
1048
+ }
1049
+ return a !== b
1050
+
1051
+ case '':
1052
+ case '=':
1053
+ case '==':
1054
+ return eq(a, b, loose)
1055
+
1056
+ case '!=':
1057
+ return neq(a, b, loose)
1058
+
1059
+ case '>':
1060
+ return gt(a, b, loose)
1061
+
1062
+ case '>=':
1063
+ return gte(a, b, loose)
1064
+
1065
+ case '<':
1066
+ return lt(a, b, loose)
1067
+
1068
+ case '<=':
1069
+ return lte(a, b, loose)
1070
+
1071
+ default:
1072
+ throw new TypeError(`Invalid operator: ${op}`)
1073
+ }
1074
+ }
1075
+ module.exports = cmp
1076
+
1077
+
1078
+ /***/ }),
1079
+
1080
+ /***/ 3384:
1081
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1082
+
1083
+ const SemVer = __nccwpck_require__(1886)
1084
+ const parse = __nccwpck_require__(4882)
1085
+ const { safeRe: re, t } = __nccwpck_require__(4376)
1086
+
1087
+ const coerce = (version, options) => {
1088
+ if (version instanceof SemVer) {
1089
+ return version
1090
+ }
1091
+
1092
+ if (typeof version === 'number') {
1093
+ version = String(version)
1094
+ }
1095
+
1096
+ if (typeof version !== 'string') {
1097
+ return null
1098
+ }
1099
+
1100
+ options = options || {}
1101
+
1102
+ let match = null
1103
+ if (!options.rtl) {
1104
+ match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])
1105
+ } else {
1106
+ // Find the right-most coercible string that does not share
1107
+ // a terminus with a more left-ward coercible string.
1108
+ // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'
1109
+ // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'
1110
+ //
1111
+ // Walk through the string checking with a /g regexp
1112
+ // Manually set the index so as to pick up overlapping matches.
1113
+ // Stop when we get a match that ends at the string end, since no
1114
+ // coercible string can be more right-ward without the same terminus.
1115
+ const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]
1116
+ let next
1117
+ while ((next = coerceRtlRegex.exec(version)) &&
1118
+ (!match || match.index + match[0].length !== version.length)
1119
+ ) {
1120
+ if (!match ||
1121
+ next.index + next[0].length !== match.index + match[0].length) {
1122
+ match = next
1123
+ }
1124
+ coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length
1125
+ }
1126
+ // leave it in a clean state
1127
+ coerceRtlRegex.lastIndex = -1
1128
+ }
1129
+
1130
+ if (match === null) {
1131
+ return null
1132
+ }
1133
+
1134
+ const major = match[2]
1135
+ const minor = match[3] || '0'
1136
+ const patch = match[4] || '0'
1137
+ const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''
1138
+ const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''
1139
+
1140
+ return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)
1141
+ }
1142
+ module.exports = coerce
1143
+
1144
+
1145
+ /***/ }),
1146
+
1147
+ /***/ 7151:
1148
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1149
+
1150
+ const SemVer = __nccwpck_require__(1886)
1151
+ const compareBuild = (a, b, loose) => {
1152
+ const versionA = new SemVer(a, loose)
1153
+ const versionB = new SemVer(b, loose)
1154
+ return versionA.compare(versionB) || versionA.compareBuild(versionB)
1155
+ }
1156
+ module.exports = compareBuild
1157
+
1158
+
1159
+ /***/ }),
1160
+
1161
+ /***/ 5733:
1162
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1163
+
1164
+ const compare = __nccwpck_require__(8718)
1165
+ const compareLoose = (a, b) => compare(a, b, true)
1166
+ module.exports = compareLoose
1167
+
1168
+
1169
+ /***/ }),
1170
+
1171
+ /***/ 8718:
1172
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1173
+
1174
+ const SemVer = __nccwpck_require__(1886)
1175
+ const compare = (a, b, loose) =>
1176
+ new SemVer(a, loose).compare(new SemVer(b, loose))
1177
+
1178
+ module.exports = compare
1179
+
1180
+
1181
+ /***/ }),
1182
+
1183
+ /***/ 4542:
1184
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1185
+
1186
+ const parse = __nccwpck_require__(4882)
1187
+
1188
+ const diff = (version1, version2) => {
1189
+ const v1 = parse(version1, null, true)
1190
+ const v2 = parse(version2, null, true)
1191
+ const comparison = v1.compare(v2)
1192
+
1193
+ if (comparison === 0) {
1194
+ return null
1195
+ }
1196
+
1197
+ const v1Higher = comparison > 0
1198
+ const highVersion = v1Higher ? v1 : v2
1199
+ const lowVersion = v1Higher ? v2 : v1
1200
+ const highHasPre = !!highVersion.prerelease.length
1201
+ const lowHasPre = !!lowVersion.prerelease.length
1202
+
1203
+ if (lowHasPre && !highHasPre) {
1204
+ // Going from prerelease -> no prerelease requires some special casing
1205
+
1206
+ // If the low version has only a major, then it will always be a major
1207
+ // Some examples:
1208
+ // 1.0.0-1 -> 1.0.0
1209
+ // 1.0.0-1 -> 1.1.1
1210
+ // 1.0.0-1 -> 2.0.0
1211
+ if (!lowVersion.patch && !lowVersion.minor) {
1212
+ return 'major'
1213
+ }
1214
+
1215
+ // Otherwise it can be determined by checking the high version
1216
+
1217
+ if (highVersion.patch) {
1218
+ // anything higher than a patch bump would result in the wrong version
1219
+ return 'patch'
1220
+ }
1221
+
1222
+ if (highVersion.minor) {
1223
+ // anything higher than a minor bump would result in the wrong version
1224
+ return 'minor'
1225
+ }
1226
+
1227
+ // bumping major/minor/patch all have same result
1228
+ return 'major'
1229
+ }
1230
+
1231
+ // add the `pre` prefix if we are going to a prerelease version
1232
+ const prefix = highHasPre ? 'pre' : ''
1233
+
1234
+ if (v1.major !== v2.major) {
1235
+ return prefix + 'major'
1236
+ }
1237
+
1238
+ if (v1.minor !== v2.minor) {
1239
+ return prefix + 'minor'
1240
+ }
1241
+
1242
+ if (v1.patch !== v2.patch) {
1243
+ return prefix + 'patch'
1244
+ }
1245
+
1246
+ // high and low are preleases
1247
+ return 'prerelease'
1248
+ }
1249
+
1250
+ module.exports = diff
1251
+
1252
+
1253
+ /***/ }),
1254
+
1255
+ /***/ 4783:
1256
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1257
+
1258
+ const compare = __nccwpck_require__(8718)
1259
+ const eq = (a, b, loose) => compare(a, b, loose) === 0
1260
+ module.exports = eq
1261
+
1262
+
1263
+ /***/ }),
1264
+
1265
+ /***/ 3110:
1266
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1267
+
1268
+ const compare = __nccwpck_require__(8718)
1269
+ const gt = (a, b, loose) => compare(a, b, loose) > 0
1270
+ module.exports = gt
1271
+
1272
+
1273
+ /***/ }),
1274
+
1275
+ /***/ 9199:
1276
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1277
+
1278
+ const compare = __nccwpck_require__(8718)
1279
+ const gte = (a, b, loose) => compare(a, b, loose) >= 0
1280
+ module.exports = gte
1281
+
1282
+
1283
+ /***/ }),
1284
+
1285
+ /***/ 9129:
1286
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1287
+
1288
+ const SemVer = __nccwpck_require__(1886)
1289
+
1290
+ const inc = (version, release, options, identifier, identifierBase) => {
1291
+ if (typeof (options) === 'string') {
1292
+ identifierBase = identifier
1293
+ identifier = options
1294
+ options = undefined
1295
+ }
1296
+
1297
+ try {
1298
+ return new SemVer(
1299
+ version instanceof SemVer ? version.version : version,
1300
+ options
1301
+ ).inc(release, identifier, identifierBase).version
1302
+ } catch (er) {
1303
+ return null
1304
+ }
1305
+ }
1306
+ module.exports = inc
1307
+
1308
+
1309
+ /***/ }),
1310
+
1311
+ /***/ 3769:
1312
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1313
+
1314
+ const compare = __nccwpck_require__(8718)
1315
+ const lt = (a, b, loose) => compare(a, b, loose) < 0
1316
+ module.exports = lt
1317
+
1318
+
1319
+ /***/ }),
1320
+
1321
+ /***/ 4362:
1322
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1323
+
1324
+ const compare = __nccwpck_require__(8718)
1325
+ const lte = (a, b, loose) => compare(a, b, loose) <= 0
1326
+ module.exports = lte
1327
+
1328
+
1329
+ /***/ }),
1330
+
1331
+ /***/ 2560:
1332
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1333
+
1334
+ const SemVer = __nccwpck_require__(1886)
1335
+ const major = (a, loose) => new SemVer(a, loose).major
1336
+ module.exports = major
1337
+
1338
+
1339
+ /***/ }),
1340
+
1341
+ /***/ 6620:
1342
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1343
+
1344
+ const SemVer = __nccwpck_require__(1886)
1345
+ const minor = (a, loose) => new SemVer(a, loose).minor
1346
+ module.exports = minor
1347
+
1348
+
1349
+ /***/ }),
1350
+
1351
+ /***/ 157:
1352
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1353
+
1354
+ const compare = __nccwpck_require__(8718)
1355
+ const neq = (a, b, loose) => compare(a, b, loose) !== 0
1356
+ module.exports = neq
1357
+
1358
+
1359
+ /***/ }),
1360
+
1361
+ /***/ 4882:
1362
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1363
+
1364
+ const SemVer = __nccwpck_require__(1886)
1365
+ const parse = (version, options, throwErrors = false) => {
1366
+ if (version instanceof SemVer) {
1367
+ return version
1368
+ }
1369
+ try {
1370
+ return new SemVer(version, options)
1371
+ } catch (er) {
1372
+ if (!throwErrors) {
1373
+ return null
1374
+ }
1375
+ throw er
1376
+ }
1377
+ }
1378
+
1379
+ module.exports = parse
1380
+
1381
+
1382
+ /***/ }),
1383
+
1384
+ /***/ 1603:
1385
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1386
+
1387
+ const SemVer = __nccwpck_require__(1886)
1388
+ const patch = (a, loose) => new SemVer(a, loose).patch
1389
+ module.exports = patch
1390
+
1391
+
1392
+ /***/ }),
1393
+
1394
+ /***/ 9507:
1395
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1396
+
1397
+ const parse = __nccwpck_require__(4882)
1398
+ const prerelease = (version, options) => {
1399
+ const parsed = parse(version, options)
1400
+ return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
1401
+ }
1402
+ module.exports = prerelease
1403
+
1404
+
1405
+ /***/ }),
1406
+
1407
+ /***/ 8520:
1408
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1409
+
1410
+ const compare = __nccwpck_require__(8718)
1411
+ const rcompare = (a, b, loose) => compare(b, a, loose)
1412
+ module.exports = rcompare
1413
+
1414
+
1415
+ /***/ }),
1416
+
1417
+ /***/ 1359:
1418
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1419
+
1420
+ const compareBuild = __nccwpck_require__(7151)
1421
+ const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))
1422
+ module.exports = rsort
1423
+
1424
+
1425
+ /***/ }),
1426
+
1427
+ /***/ 1995:
1428
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1429
+
1430
+ const Range = __nccwpck_require__(597)
1431
+ const satisfies = (version, range, options) => {
1432
+ try {
1433
+ range = new Range(range, options)
1434
+ } catch (er) {
1435
+ return false
1436
+ }
1437
+ return range.test(version)
1438
+ }
1439
+ module.exports = satisfies
1440
+
1441
+
1442
+ /***/ }),
1443
+
1444
+ /***/ 5537:
1445
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1446
+
1447
+ const compareBuild = __nccwpck_require__(7151)
1448
+ const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))
1449
+ module.exports = sort
1450
+
1451
+
1452
+ /***/ }),
1453
+
1454
+ /***/ 3783:
1455
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1456
+
1457
+ const parse = __nccwpck_require__(4882)
1458
+ const valid = (version, options) => {
1459
+ const v = parse(version, options)
1460
+ return v ? v.version : null
1461
+ }
1462
+ module.exports = valid
1463
+
1464
+
1465
+ /***/ }),
1466
+
1467
+ /***/ 8407:
1468
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1469
+
1470
+ // just pre-load all the stuff that index.js lazily exports
1471
+ const internalRe = __nccwpck_require__(4376)
1472
+ const constants = __nccwpck_require__(756)
1473
+ const SemVer = __nccwpck_require__(1886)
1474
+ const identifiers = __nccwpck_require__(797)
1475
+ const parse = __nccwpck_require__(4882)
1476
+ const valid = __nccwpck_require__(3783)
1477
+ const clean = __nccwpck_require__(9368)
1478
+ const inc = __nccwpck_require__(9129)
1479
+ const diff = __nccwpck_require__(4542)
1480
+ const major = __nccwpck_require__(2560)
1481
+ const minor = __nccwpck_require__(6620)
1482
+ const patch = __nccwpck_require__(1603)
1483
+ const prerelease = __nccwpck_require__(9507)
1484
+ const compare = __nccwpck_require__(8718)
1485
+ const rcompare = __nccwpck_require__(8520)
1486
+ const compareLoose = __nccwpck_require__(5733)
1487
+ const compareBuild = __nccwpck_require__(7151)
1488
+ const sort = __nccwpck_require__(5537)
1489
+ const rsort = __nccwpck_require__(1359)
1490
+ const gt = __nccwpck_require__(3110)
1491
+ const lt = __nccwpck_require__(3769)
1492
+ const eq = __nccwpck_require__(4783)
1493
+ const neq = __nccwpck_require__(157)
1494
+ const gte = __nccwpck_require__(9199)
1495
+ const lte = __nccwpck_require__(4362)
1496
+ const cmp = __nccwpck_require__(869)
1497
+ const coerce = __nccwpck_require__(3384)
1498
+ const Comparator = __nccwpck_require__(2370)
1499
+ const Range = __nccwpck_require__(597)
1500
+ const satisfies = __nccwpck_require__(1995)
1501
+ const toComparators = __nccwpck_require__(6197)
1502
+ const maxSatisfying = __nccwpck_require__(1754)
1503
+ const minSatisfying = __nccwpck_require__(1280)
1504
+ const minVersion = __nccwpck_require__(4187)
1505
+ const validRange = __nccwpck_require__(6460)
1506
+ const outside = __nccwpck_require__(1097)
1507
+ const gtr = __nccwpck_require__(5345)
1508
+ const ltr = __nccwpck_require__(472)
1509
+ const intersects = __nccwpck_require__(5298)
1510
+ const simplifyRange = __nccwpck_require__(5303)
1511
+ const subset = __nccwpck_require__(9766)
1512
+ module.exports = {
1513
+ parse,
1514
+ valid,
1515
+ clean,
1516
+ inc,
1517
+ diff,
1518
+ major,
1519
+ minor,
1520
+ patch,
1521
+ prerelease,
1522
+ compare,
1523
+ rcompare,
1524
+ compareLoose,
1525
+ compareBuild,
1526
+ sort,
1527
+ rsort,
1528
+ gt,
1529
+ lt,
1530
+ eq,
1531
+ neq,
1532
+ gte,
1533
+ lte,
1534
+ cmp,
1535
+ coerce,
1536
+ Comparator,
1537
+ Range,
1538
+ satisfies,
1539
+ toComparators,
1540
+ maxSatisfying,
1541
+ minSatisfying,
1542
+ minVersion,
1543
+ validRange,
1544
+ outside,
1545
+ gtr,
1546
+ ltr,
1547
+ intersects,
1548
+ simplifyRange,
1549
+ subset,
1550
+ SemVer,
1551
+ re: internalRe.re,
1552
+ src: internalRe.src,
1553
+ tokens: internalRe.t,
1554
+ SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,
1555
+ RELEASE_TYPES: constants.RELEASE_TYPES,
1556
+ compareIdentifiers: identifiers.compareIdentifiers,
1557
+ rcompareIdentifiers: identifiers.rcompareIdentifiers,
1558
+ }
1559
+
1560
+
1561
+ /***/ }),
1562
+
1563
+ /***/ 756:
1564
+ /***/ ((module) => {
1565
+
1566
+ // Note: this is the semver.org version of the spec that it implements
1567
+ // Not necessarily the package version of this code.
1568
+ const SEMVER_SPEC_VERSION = '2.0.0'
1569
+
1570
+ const MAX_LENGTH = 256
1571
+ const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
1572
+ /* istanbul ignore next */ 9007199254740991
1573
+
1574
+ // Max safe segment length for coercion.
1575
+ const MAX_SAFE_COMPONENT_LENGTH = 16
1576
+
1577
+ // Max safe length for a build identifier. The max length minus 6 characters for
1578
+ // the shortest version with a build 0.0.0+BUILD.
1579
+ const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
1580
+
1581
+ const RELEASE_TYPES = [
1582
+ 'major',
1583
+ 'premajor',
1584
+ 'minor',
1585
+ 'preminor',
1586
+ 'patch',
1587
+ 'prepatch',
1588
+ 'prerelease',
1589
+ ]
1590
+
1591
+ module.exports = {
1592
+ MAX_LENGTH,
1593
+ MAX_SAFE_COMPONENT_LENGTH,
1594
+ MAX_SAFE_BUILD_LENGTH,
1595
+ MAX_SAFE_INTEGER,
1596
+ RELEASE_TYPES,
1597
+ SEMVER_SPEC_VERSION,
1598
+ FLAG_INCLUDE_PRERELEASE: 0b001,
1599
+ FLAG_LOOSE: 0b010,
1600
+ }
1601
+
1602
+
1603
+ /***/ }),
1604
+
1605
+ /***/ 9394:
1606
+ /***/ ((module) => {
1607
+
1608
+ const debug = (
1609
+ typeof process === 'object' &&
1610
+ process.env &&
1611
+ process.env.NODE_DEBUG &&
1612
+ /\bsemver\b/i.test(process.env.NODE_DEBUG)
1613
+ ) ? (...args) => console.error('SEMVER', ...args)
1614
+ : () => {}
1615
+
1616
+ module.exports = debug
1617
+
1618
+
1619
+ /***/ }),
1620
+
1621
+ /***/ 797:
1622
+ /***/ ((module) => {
1623
+
1624
+ const numeric = /^[0-9]+$/
1625
+ const compareIdentifiers = (a, b) => {
1626
+ const anum = numeric.test(a)
1627
+ const bnum = numeric.test(b)
1628
+
1629
+ if (anum && bnum) {
1630
+ a = +a
1631
+ b = +b
1632
+ }
1633
+
1634
+ return a === b ? 0
1635
+ : (anum && !bnum) ? -1
1636
+ : (bnum && !anum) ? 1
1637
+ : a < b ? -1
1638
+ : 1
1639
+ }
1640
+
1641
+ const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
1642
+
1643
+ module.exports = {
1644
+ compareIdentifiers,
1645
+ rcompareIdentifiers,
1646
+ }
1647
+
1648
+
1649
+ /***/ }),
1650
+
1651
+ /***/ 8860:
1652
+ /***/ ((module) => {
1653
+
1654
+ class LRUCache {
1655
+ constructor () {
1656
+ this.max = 1000
1657
+ this.map = new Map()
1658
+ }
1659
+
1660
+ get (key) {
1661
+ const value = this.map.get(key)
1662
+ if (value === undefined) {
1663
+ return undefined
1664
+ } else {
1665
+ // Remove the key from the map and add it to the end
1666
+ this.map.delete(key)
1667
+ this.map.set(key, value)
1668
+ return value
1669
+ }
1670
+ }
1671
+
1672
+ delete (key) {
1673
+ return this.map.delete(key)
1674
+ }
1675
+
1676
+ set (key, value) {
1677
+ const deleted = this.delete(key)
1678
+
1679
+ if (!deleted && value !== undefined) {
1680
+ // If cache is full, delete the least recently used item
1681
+ if (this.map.size >= this.max) {
1682
+ const firstKey = this.map.keys().next().value
1683
+ this.delete(firstKey)
1684
+ }
1685
+
1686
+ this.map.set(key, value)
1687
+ }
1688
+
1689
+ return this
1690
+ }
1691
+ }
1692
+
1693
+ module.exports = LRUCache
1694
+
1695
+
1696
+ /***/ }),
1697
+
1698
+ /***/ 1629:
1699
+ /***/ ((module) => {
1700
+
1701
+ // parse out just the options we care about
1702
+ const looseOption = Object.freeze({ loose: true })
1703
+ const emptyOpts = Object.freeze({ })
1704
+ const parseOptions = options => {
1705
+ if (!options) {
1706
+ return emptyOpts
1707
+ }
1708
+
1709
+ if (typeof options !== 'object') {
1710
+ return looseOption
1711
+ }
1712
+
1713
+ return options
1714
+ }
1715
+ module.exports = parseOptions
1716
+
1717
+
1718
+ /***/ }),
1719
+
1720
+ /***/ 4376:
1721
+ /***/ ((module, exports, __nccwpck_require__) => {
1722
+
1723
+ const {
1724
+ MAX_SAFE_COMPONENT_LENGTH,
1725
+ MAX_SAFE_BUILD_LENGTH,
1726
+ MAX_LENGTH,
1727
+ } = __nccwpck_require__(756)
1728
+ const debug = __nccwpck_require__(9394)
1729
+ exports = module.exports = {}
1730
+
1731
+ // The actual regexps go on exports.re
1732
+ const re = exports.re = []
1733
+ const safeRe = exports.safeRe = []
1734
+ const src = exports.src = []
1735
+ const t = exports.t = {}
1736
+ let R = 0
1737
+
1738
+ const LETTERDASHNUMBER = '[a-zA-Z0-9-]'
1739
+
1740
+ // Replace some greedy regex tokens to prevent regex dos issues. These regex are
1741
+ // used internally via the safeRe object since all inputs in this library get
1742
+ // normalized first to trim and collapse all extra whitespace. The original
1743
+ // regexes are exported for userland consumption and lower level usage. A
1744
+ // future breaking change could export the safer regex only with a note that
1745
+ // all input should have extra whitespace removed.
1746
+ const safeRegexReplacements = [
1747
+ ['\\s', 1],
1748
+ ['\\d', MAX_LENGTH],
1749
+ [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
1750
+ ]
1751
+
1752
+ const makeSafeRegex = (value) => {
1753
+ for (const [token, max] of safeRegexReplacements) {
1754
+ value = value
1755
+ .split(`${token}*`).join(`${token}{0,${max}}`)
1756
+ .split(`${token}+`).join(`${token}{1,${max}}`)
1757
+ }
1758
+ return value
1759
+ }
1760
+
1761
+ const createToken = (name, value, isGlobal) => {
1762
+ const safe = makeSafeRegex(value)
1763
+ const index = R++
1764
+ debug(name, index, value)
1765
+ t[name] = index
1766
+ src[index] = value
1767
+ re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
1768
+ safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)
1769
+ }
1770
+
1771
+ // The following Regular Expressions can be used for tokenizing,
1772
+ // validating, and parsing SemVer version strings.
1773
+
1774
+ // ## Numeric Identifier
1775
+ // A single `0`, or a non-zero digit followed by zero or more digits.
1776
+
1777
+ createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
1778
+ createToken('NUMERICIDENTIFIERLOOSE', '\\d+')
1779
+
1780
+ // ## Non-numeric Identifier
1781
+ // Zero or more digits, followed by a letter or hyphen, and then zero or
1782
+ // more letters, digits, or hyphens.
1783
+
1784
+ createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)
1785
+
1786
+ // ## Main Version
1787
+ // Three dot-separated numeric identifiers.
1788
+
1789
+ createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
1790
+ `(${src[t.NUMERICIDENTIFIER]})\\.` +
1791
+ `(${src[t.NUMERICIDENTIFIER]})`)
1792
+
1793
+ createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
1794
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
1795
+ `(${src[t.NUMERICIDENTIFIERLOOSE]})`)
1796
+
1797
+ // ## Pre-release Version Identifier
1798
+ // A numeric identifier, or a non-numeric identifier.
1799
+
1800
+ createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
1801
+ }|${src[t.NONNUMERICIDENTIFIER]})`)
1802
+
1803
+ createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
1804
+ }|${src[t.NONNUMERICIDENTIFIER]})`)
1805
+
1806
+ // ## Pre-release Version
1807
+ // Hyphen, followed by one or more dot-separated pre-release version
1808
+ // identifiers.
1809
+
1810
+ createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
1811
+ }(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)
1812
+
1813
+ createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
1814
+ }(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)
1815
+
1816
+ // ## Build Metadata Identifier
1817
+ // Any combination of digits, letters, or hyphens.
1818
+
1819
+ createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)
1820
+
1821
+ // ## Build Metadata
1822
+ // Plus sign, followed by one or more period-separated build metadata
1823
+ // identifiers.
1824
+
1825
+ createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
1826
+ }(?:\\.${src[t.BUILDIDENTIFIER]})*))`)
1827
+
1828
+ // ## Full Version String
1829
+ // A main version, followed optionally by a pre-release version and
1830
+ // build metadata.
1831
+
1832
+ // Note that the only major, minor, patch, and pre-release sections of
1833
+ // the version string are capturing groups. The build metadata is not a
1834
+ // capturing group, because it should not ever be used in version
1835
+ // comparison.
1836
+
1837
+ createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
1838
+ }${src[t.PRERELEASE]}?${
1839
+ src[t.BUILD]}?`)
1840
+
1841
+ createToken('FULL', `^${src[t.FULLPLAIN]}$`)
1842
+
1843
+ // like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
1844
+ // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
1845
+ // common in the npm registry.
1846
+ createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
1847
+ }${src[t.PRERELEASELOOSE]}?${
1848
+ src[t.BUILD]}?`)
1849
+
1850
+ createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
1851
+
1852
+ createToken('GTLT', '((?:<|>)?=?)')
1853
+
1854
+ // Something like "2.*" or "1.2.x".
1855
+ // Note that "x.x" is a valid xRange identifer, meaning "any version"
1856
+ // Only the first item is strictly required.
1857
+ createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
1858
+ createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
1859
+
1860
+ createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
1861
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
1862
+ `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
1863
+ `(?:${src[t.PRERELEASE]})?${
1864
+ src[t.BUILD]}?` +
1865
+ `)?)?`)
1866
+
1867
+ createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
1868
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
1869
+ `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
1870
+ `(?:${src[t.PRERELEASELOOSE]})?${
1871
+ src[t.BUILD]}?` +
1872
+ `)?)?`)
1873
+
1874
+ createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
1875
+ createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)
1876
+
1877
+ // Coercion.
1878
+ // Extract anything that could conceivably be a part of a valid semver
1879
+ createToken('COERCEPLAIN', `${'(^|[^\\d])' +
1880
+ '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
1881
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
1882
+ `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)
1883
+ createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`)
1884
+ createToken('COERCEFULL', src[t.COERCEPLAIN] +
1885
+ `(?:${src[t.PRERELEASE]})?` +
1886
+ `(?:${src[t.BUILD]})?` +
1887
+ `(?:$|[^\\d])`)
1888
+ createToken('COERCERTL', src[t.COERCE], true)
1889
+ createToken('COERCERTLFULL', src[t.COERCEFULL], true)
1890
+
1891
+ // Tilde ranges.
1892
+ // Meaning is "reasonably at or greater than"
1893
+ createToken('LONETILDE', '(?:~>?)')
1894
+
1895
+ createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
1896
+ exports.tildeTrimReplace = '$1~'
1897
+
1898
+ createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
1899
+ createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)
1900
+
1901
+ // Caret ranges.
1902
+ // Meaning is "at least and backwards compatible with"
1903
+ createToken('LONECARET', '(?:\\^)')
1904
+
1905
+ createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
1906
+ exports.caretTrimReplace = '$1^'
1907
+
1908
+ createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
1909
+ createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)
1910
+
1911
+ // A simple gt/lt/eq thing, or just "" to indicate "any version"
1912
+ createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
1913
+ createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)
1914
+
1915
+ // An expression to strip any whitespace between the gtlt and the thing
1916
+ // it modifies, so that `> 1.2.3` ==> `>1.2.3`
1917
+ createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
1918
+ }\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
1919
+ exports.comparatorTrimReplace = '$1$2$3'
1920
+
1921
+ // Something like `1.2.3 - 1.2.4`
1922
+ // Note that these all use the loose form, because they'll be
1923
+ // checked against either the strict or loose comparator form
1924
+ // later.
1925
+ createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
1926
+ `\\s+-\\s+` +
1927
+ `(${src[t.XRANGEPLAIN]})` +
1928
+ `\\s*$`)
1929
+
1930
+ createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
1931
+ `\\s+-\\s+` +
1932
+ `(${src[t.XRANGEPLAINLOOSE]})` +
1933
+ `\\s*$`)
1934
+
1935
+ // Star ranges basically just allow anything at all.
1936
+ createToken('STAR', '(<|>)?=?\\s*\\*')
1937
+ // >=0.0.0 is like a star
1938
+ createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$')
1939
+ createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$')
1940
+
1941
+
1942
+ /***/ }),
1943
+
1944
+ /***/ 5345:
1945
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1946
+
1947
+ // Determine if version is greater than all the versions possible in the range.
1948
+ const outside = __nccwpck_require__(1097)
1949
+ const gtr = (version, range, options) => outside(version, range, '>', options)
1950
+ module.exports = gtr
1951
+
1952
+
1953
+ /***/ }),
1954
+
1955
+ /***/ 5298:
1956
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1957
+
1958
+ const Range = __nccwpck_require__(597)
1959
+ const intersects = (r1, r2, options) => {
1960
+ r1 = new Range(r1, options)
1961
+ r2 = new Range(r2, options)
1962
+ return r1.intersects(r2, options)
1963
+ }
1964
+ module.exports = intersects
1965
+
1966
+
1967
+ /***/ }),
1968
+
1969
+ /***/ 472:
1970
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1971
+
1972
+ const outside = __nccwpck_require__(1097)
1973
+ // Determine if version is less than all the versions possible in the range
1974
+ const ltr = (version, range, options) => outside(version, range, '<', options)
1975
+ module.exports = ltr
1976
+
1977
+
1978
+ /***/ }),
1979
+
1980
+ /***/ 1754:
1981
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
1982
+
1983
+ const SemVer = __nccwpck_require__(1886)
1984
+ const Range = __nccwpck_require__(597)
1985
+
1986
+ const maxSatisfying = (versions, range, options) => {
1987
+ let max = null
1988
+ let maxSV = null
1989
+ let rangeObj = null
1990
+ try {
1991
+ rangeObj = new Range(range, options)
1992
+ } catch (er) {
1993
+ return null
1994
+ }
1995
+ versions.forEach((v) => {
1996
+ if (rangeObj.test(v)) {
1997
+ // satisfies(v, range, options)
1998
+ if (!max || maxSV.compare(v) === -1) {
1999
+ // compare(max, v, true)
2000
+ max = v
2001
+ maxSV = new SemVer(max, options)
2002
+ }
2003
+ }
2004
+ })
2005
+ return max
2006
+ }
2007
+ module.exports = maxSatisfying
2008
+
2009
+
2010
+ /***/ }),
2011
+
2012
+ /***/ 1280:
2013
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2014
+
2015
+ const SemVer = __nccwpck_require__(1886)
2016
+ const Range = __nccwpck_require__(597)
2017
+ const minSatisfying = (versions, range, options) => {
2018
+ let min = null
2019
+ let minSV = null
2020
+ let rangeObj = null
2021
+ try {
2022
+ rangeObj = new Range(range, options)
2023
+ } catch (er) {
2024
+ return null
2025
+ }
2026
+ versions.forEach((v) => {
2027
+ if (rangeObj.test(v)) {
2028
+ // satisfies(v, range, options)
2029
+ if (!min || minSV.compare(v) === 1) {
2030
+ // compare(min, v, true)
2031
+ min = v
2032
+ minSV = new SemVer(min, options)
2033
+ }
2034
+ }
2035
+ })
2036
+ return min
2037
+ }
2038
+ module.exports = minSatisfying
2039
+
2040
+
2041
+ /***/ }),
2042
+
2043
+ /***/ 4187:
2044
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2045
+
2046
+ const SemVer = __nccwpck_require__(1886)
2047
+ const Range = __nccwpck_require__(597)
2048
+ const gt = __nccwpck_require__(3110)
2049
+
2050
+ const minVersion = (range, loose) => {
2051
+ range = new Range(range, loose)
2052
+
2053
+ let minver = new SemVer('0.0.0')
2054
+ if (range.test(minver)) {
2055
+ return minver
2056
+ }
2057
+
2058
+ minver = new SemVer('0.0.0-0')
2059
+ if (range.test(minver)) {
2060
+ return minver
2061
+ }
2062
+
2063
+ minver = null
2064
+ for (let i = 0; i < range.set.length; ++i) {
2065
+ const comparators = range.set[i]
2066
+
2067
+ let setMin = null
2068
+ comparators.forEach((comparator) => {
2069
+ // Clone to avoid manipulating the comparator's semver object.
2070
+ const compver = new SemVer(comparator.semver.version)
2071
+ switch (comparator.operator) {
2072
+ case '>':
2073
+ if (compver.prerelease.length === 0) {
2074
+ compver.patch++
2075
+ } else {
2076
+ compver.prerelease.push(0)
2077
+ }
2078
+ compver.raw = compver.format()
2079
+ /* fallthrough */
2080
+ case '':
2081
+ case '>=':
2082
+ if (!setMin || gt(compver, setMin)) {
2083
+ setMin = compver
2084
+ }
2085
+ break
2086
+ case '<':
2087
+ case '<=':
2088
+ /* Ignore maximum versions */
2089
+ break
2090
+ /* istanbul ignore next */
2091
+ default:
2092
+ throw new Error(`Unexpected operation: ${comparator.operator}`)
2093
+ }
2094
+ })
2095
+ if (setMin && (!minver || gt(minver, setMin))) {
2096
+ minver = setMin
2097
+ }
2098
+ }
2099
+
2100
+ if (minver && range.test(minver)) {
2101
+ return minver
2102
+ }
2103
+
2104
+ return null
2105
+ }
2106
+ module.exports = minVersion
2107
+
2108
+
2109
+ /***/ }),
2110
+
2111
+ /***/ 1097:
2112
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2113
+
2114
+ const SemVer = __nccwpck_require__(1886)
2115
+ const Comparator = __nccwpck_require__(2370)
2116
+ const { ANY } = Comparator
2117
+ const Range = __nccwpck_require__(597)
2118
+ const satisfies = __nccwpck_require__(1995)
2119
+ const gt = __nccwpck_require__(3110)
2120
+ const lt = __nccwpck_require__(3769)
2121
+ const lte = __nccwpck_require__(4362)
2122
+ const gte = __nccwpck_require__(9199)
2123
+
2124
+ const outside = (version, range, hilo, options) => {
2125
+ version = new SemVer(version, options)
2126
+ range = new Range(range, options)
2127
+
2128
+ let gtfn, ltefn, ltfn, comp, ecomp
2129
+ switch (hilo) {
2130
+ case '>':
2131
+ gtfn = gt
2132
+ ltefn = lte
2133
+ ltfn = lt
2134
+ comp = '>'
2135
+ ecomp = '>='
2136
+ break
2137
+ case '<':
2138
+ gtfn = lt
2139
+ ltefn = gte
2140
+ ltfn = gt
2141
+ comp = '<'
2142
+ ecomp = '<='
2143
+ break
2144
+ default:
2145
+ throw new TypeError('Must provide a hilo val of "<" or ">"')
2146
+ }
2147
+
2148
+ // If it satisfies the range it is not outside
2149
+ if (satisfies(version, range, options)) {
2150
+ return false
2151
+ }
2152
+
2153
+ // From now on, variable terms are as if we're in "gtr" mode.
2154
+ // but note that everything is flipped for the "ltr" function.
2155
+
2156
+ for (let i = 0; i < range.set.length; ++i) {
2157
+ const comparators = range.set[i]
2158
+
2159
+ let high = null
2160
+ let low = null
2161
+
2162
+ comparators.forEach((comparator) => {
2163
+ if (comparator.semver === ANY) {
2164
+ comparator = new Comparator('>=0.0.0')
2165
+ }
2166
+ high = high || comparator
2167
+ low = low || comparator
2168
+ if (gtfn(comparator.semver, high.semver, options)) {
2169
+ high = comparator
2170
+ } else if (ltfn(comparator.semver, low.semver, options)) {
2171
+ low = comparator
2172
+ }
2173
+ })
2174
+
2175
+ // If the edge version comparator has a operator then our version
2176
+ // isn't outside it
2177
+ if (high.operator === comp || high.operator === ecomp) {
2178
+ return false
2179
+ }
2180
+
2181
+ // If the lowest version comparator has an operator and our version
2182
+ // is less than it then it isn't higher than the range
2183
+ if ((!low.operator || low.operator === comp) &&
2184
+ ltefn(version, low.semver)) {
2185
+ return false
2186
+ } else if (low.operator === ecomp && ltfn(version, low.semver)) {
2187
+ return false
2188
+ }
2189
+ }
2190
+ return true
2191
+ }
2192
+
2193
+ module.exports = outside
2194
+
2195
+
2196
+ /***/ }),
2197
+
2198
+ /***/ 5303:
2199
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2200
+
2201
+ // given a set of versions and a range, create a "simplified" range
2202
+ // that includes the same versions that the original range does
2203
+ // If the original range is shorter than the simplified one, return that.
2204
+ const satisfies = __nccwpck_require__(1995)
2205
+ const compare = __nccwpck_require__(8718)
2206
+ module.exports = (versions, range, options) => {
2207
+ const set = []
2208
+ let first = null
2209
+ let prev = null
2210
+ const v = versions.sort((a, b) => compare(a, b, options))
2211
+ for (const version of v) {
2212
+ const included = satisfies(version, range, options)
2213
+ if (included) {
2214
+ prev = version
2215
+ if (!first) {
2216
+ first = version
2217
+ }
2218
+ } else {
2219
+ if (prev) {
2220
+ set.push([first, prev])
2221
+ }
2222
+ prev = null
2223
+ first = null
2224
+ }
2225
+ }
2226
+ if (first) {
2227
+ set.push([first, null])
2228
+ }
2229
+
2230
+ const ranges = []
2231
+ for (const [min, max] of set) {
2232
+ if (min === max) {
2233
+ ranges.push(min)
2234
+ } else if (!max && min === v[0]) {
2235
+ ranges.push('*')
2236
+ } else if (!max) {
2237
+ ranges.push(`>=${min}`)
2238
+ } else if (min === v[0]) {
2239
+ ranges.push(`<=${max}`)
2240
+ } else {
2241
+ ranges.push(`${min} - ${max}`)
2242
+ }
2243
+ }
2244
+ const simplified = ranges.join(' || ')
2245
+ const original = typeof range.raw === 'string' ? range.raw : String(range)
2246
+ return simplified.length < original.length ? simplified : range
2247
+ }
2248
+
2249
+
2250
+ /***/ }),
2251
+
2252
+ /***/ 9766:
2253
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2254
+
2255
+ const Range = __nccwpck_require__(597)
2256
+ const Comparator = __nccwpck_require__(2370)
2257
+ const { ANY } = Comparator
2258
+ const satisfies = __nccwpck_require__(1995)
2259
+ const compare = __nccwpck_require__(8718)
2260
+
2261
+ // Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
2262
+ // - Every simple range `r1, r2, ...` is a null set, OR
2263
+ // - Every simple range `r1, r2, ...` which is not a null set is a subset of
2264
+ // some `R1, R2, ...`
2265
+ //
2266
+ // Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
2267
+ // - If c is only the ANY comparator
2268
+ // - If C is only the ANY comparator, return true
2269
+ // - Else if in prerelease mode, return false
2270
+ // - else replace c with `[>=0.0.0]`
2271
+ // - If C is only the ANY comparator
2272
+ // - if in prerelease mode, return true
2273
+ // - else replace C with `[>=0.0.0]`
2274
+ // - Let EQ be the set of = comparators in c
2275
+ // - If EQ is more than one, return true (null set)
2276
+ // - Let GT be the highest > or >= comparator in c
2277
+ // - Let LT be the lowest < or <= comparator in c
2278
+ // - If GT and LT, and GT.semver > LT.semver, return true (null set)
2279
+ // - If any C is a = range, and GT or LT are set, return false
2280
+ // - If EQ
2281
+ // - If GT, and EQ does not satisfy GT, return true (null set)
2282
+ // - If LT, and EQ does not satisfy LT, return true (null set)
2283
+ // - If EQ satisfies every C, return true
2284
+ // - Else return false
2285
+ // - If GT
2286
+ // - If GT.semver is lower than any > or >= comp in C, return false
2287
+ // - If GT is >=, and GT.semver does not satisfy every C, return false
2288
+ // - If GT.semver has a prerelease, and not in prerelease mode
2289
+ // - If no C has a prerelease and the GT.semver tuple, return false
2290
+ // - If LT
2291
+ // - If LT.semver is greater than any < or <= comp in C, return false
2292
+ // - If LT is <=, and LT.semver does not satisfy every C, return false
2293
+ // - If GT.semver has a prerelease, and not in prerelease mode
2294
+ // - If no C has a prerelease and the LT.semver tuple, return false
2295
+ // - Else return true
2296
+
2297
+ const subset = (sub, dom, options = {}) => {
2298
+ if (sub === dom) {
2299
+ return true
2300
+ }
2301
+
2302
+ sub = new Range(sub, options)
2303
+ dom = new Range(dom, options)
2304
+ let sawNonNull = false
2305
+
2306
+ OUTER: for (const simpleSub of sub.set) {
2307
+ for (const simpleDom of dom.set) {
2308
+ const isSub = simpleSubset(simpleSub, simpleDom, options)
2309
+ sawNonNull = sawNonNull || isSub !== null
2310
+ if (isSub) {
2311
+ continue OUTER
2312
+ }
2313
+ }
2314
+ // the null set is a subset of everything, but null simple ranges in
2315
+ // a complex range should be ignored. so if we saw a non-null range,
2316
+ // then we know this isn't a subset, but if EVERY simple range was null,
2317
+ // then it is a subset.
2318
+ if (sawNonNull) {
2319
+ return false
2320
+ }
2321
+ }
2322
+ return true
2323
+ }
2324
+
2325
+ const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]
2326
+ const minimumVersion = [new Comparator('>=0.0.0')]
2327
+
2328
+ const simpleSubset = (sub, dom, options) => {
2329
+ if (sub === dom) {
2330
+ return true
2331
+ }
2332
+
2333
+ if (sub.length === 1 && sub[0].semver === ANY) {
2334
+ if (dom.length === 1 && dom[0].semver === ANY) {
2335
+ return true
2336
+ } else if (options.includePrerelease) {
2337
+ sub = minimumVersionWithPreRelease
2338
+ } else {
2339
+ sub = minimumVersion
2340
+ }
2341
+ }
2342
+
2343
+ if (dom.length === 1 && dom[0].semver === ANY) {
2344
+ if (options.includePrerelease) {
2345
+ return true
2346
+ } else {
2347
+ dom = minimumVersion
2348
+ }
2349
+ }
2350
+
2351
+ const eqSet = new Set()
2352
+ let gt, lt
2353
+ for (const c of sub) {
2354
+ if (c.operator === '>' || c.operator === '>=') {
2355
+ gt = higherGT(gt, c, options)
2356
+ } else if (c.operator === '<' || c.operator === '<=') {
2357
+ lt = lowerLT(lt, c, options)
2358
+ } else {
2359
+ eqSet.add(c.semver)
2360
+ }
2361
+ }
2362
+
2363
+ if (eqSet.size > 1) {
2364
+ return null
2365
+ }
2366
+
2367
+ let gtltComp
2368
+ if (gt && lt) {
2369
+ gtltComp = compare(gt.semver, lt.semver, options)
2370
+ if (gtltComp > 0) {
2371
+ return null
2372
+ } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {
2373
+ return null
2374
+ }
2375
+ }
2376
+
2377
+ // will iterate one or zero times
2378
+ for (const eq of eqSet) {
2379
+ if (gt && !satisfies(eq, String(gt), options)) {
2380
+ return null
2381
+ }
2382
+
2383
+ if (lt && !satisfies(eq, String(lt), options)) {
2384
+ return null
2385
+ }
2386
+
2387
+ for (const c of dom) {
2388
+ if (!satisfies(eq, String(c), options)) {
2389
+ return false
2390
+ }
2391
+ }
2392
+
2393
+ return true
2394
+ }
2395
+
2396
+ let higher, lower
2397
+ let hasDomLT, hasDomGT
2398
+ // if the subset has a prerelease, we need a comparator in the superset
2399
+ // with the same tuple and a prerelease, or it's not a subset
2400
+ let needDomLTPre = lt &&
2401
+ !options.includePrerelease &&
2402
+ lt.semver.prerelease.length ? lt.semver : false
2403
+ let needDomGTPre = gt &&
2404
+ !options.includePrerelease &&
2405
+ gt.semver.prerelease.length ? gt.semver : false
2406
+ // exception: <1.2.3-0 is the same as <1.2.3
2407
+ if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&
2408
+ lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {
2409
+ needDomLTPre = false
2410
+ }
2411
+
2412
+ for (const c of dom) {
2413
+ hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='
2414
+ hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='
2415
+ if (gt) {
2416
+ if (needDomGTPre) {
2417
+ if (c.semver.prerelease && c.semver.prerelease.length &&
2418
+ c.semver.major === needDomGTPre.major &&
2419
+ c.semver.minor === needDomGTPre.minor &&
2420
+ c.semver.patch === needDomGTPre.patch) {
2421
+ needDomGTPre = false
2422
+ }
2423
+ }
2424
+ if (c.operator === '>' || c.operator === '>=') {
2425
+ higher = higherGT(gt, c, options)
2426
+ if (higher === c && higher !== gt) {
2427
+ return false
2428
+ }
2429
+ } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {
2430
+ return false
2431
+ }
2432
+ }
2433
+ if (lt) {
2434
+ if (needDomLTPre) {
2435
+ if (c.semver.prerelease && c.semver.prerelease.length &&
2436
+ c.semver.major === needDomLTPre.major &&
2437
+ c.semver.minor === needDomLTPre.minor &&
2438
+ c.semver.patch === needDomLTPre.patch) {
2439
+ needDomLTPre = false
2440
+ }
2441
+ }
2442
+ if (c.operator === '<' || c.operator === '<=') {
2443
+ lower = lowerLT(lt, c, options)
2444
+ if (lower === c && lower !== lt) {
2445
+ return false
2446
+ }
2447
+ } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {
2448
+ return false
2449
+ }
2450
+ }
2451
+ if (!c.operator && (lt || gt) && gtltComp !== 0) {
2452
+ return false
2453
+ }
2454
+ }
2455
+
2456
+ // if there was a < or >, and nothing in the dom, then must be false
2457
+ // UNLESS it was limited by another range in the other direction.
2458
+ // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
2459
+ if (gt && hasDomLT && !lt && gtltComp !== 0) {
2460
+ return false
2461
+ }
2462
+
2463
+ if (lt && hasDomGT && !gt && gtltComp !== 0) {
2464
+ return false
2465
+ }
2466
+
2467
+ // we needed a prerelease range in a specific tuple, but didn't get one
2468
+ // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,
2469
+ // because it includes prereleases in the 1.2.3 tuple
2470
+ if (needDomGTPre || needDomLTPre) {
2471
+ return false
2472
+ }
2473
+
2474
+ return true
2475
+ }
2476
+
2477
+ // >=1.2.3 is lower than >1.2.3
2478
+ const higherGT = (a, b, options) => {
2479
+ if (!a) {
2480
+ return b
2481
+ }
2482
+ const comp = compare(a.semver, b.semver, options)
2483
+ return comp > 0 ? a
2484
+ : comp < 0 ? b
2485
+ : b.operator === '>' && a.operator === '>=' ? b
2486
+ : a
2487
+ }
2488
+
2489
+ // <=1.2.3 is higher than <1.2.3
2490
+ const lowerLT = (a, b, options) => {
2491
+ if (!a) {
2492
+ return b
2493
+ }
2494
+ const comp = compare(a.semver, b.semver, options)
2495
+ return comp < 0 ? a
2496
+ : comp > 0 ? b
2497
+ : b.operator === '<' && a.operator === '<=' ? b
2498
+ : a
2499
+ }
2500
+
2501
+ module.exports = subset
2502
+
2503
+
2504
+ /***/ }),
2505
+
2506
+ /***/ 6197:
2507
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2508
+
2509
+ const Range = __nccwpck_require__(597)
2510
+
2511
+ // Mostly just for testing and legacy API reasons
2512
+ const toComparators = (range, options) =>
2513
+ new Range(range, options).set
2514
+ .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))
2515
+
2516
+ module.exports = toComparators
2517
+
2518
+
2519
+ /***/ }),
2520
+
2521
+ /***/ 6460:
2522
+ /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
2523
+
2524
+ const Range = __nccwpck_require__(597)
2525
+ const validRange = (range, options) => {
2526
+ try {
2527
+ // Return '*' instead of '' so that truthiness works.
2528
+ // This will throw if it's invalid anyway
2529
+ return new Range(range, options).range || '*'
2530
+ } catch (er) {
2531
+ return null
2532
+ }
2533
+ }
2534
+ module.exports = validRange
2535
+
2536
+
2537
+ /***/ }),
2538
+
5
2539
  /***/ 529:
6
2540
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
7
2541
 
2542
+ "use strict";
8
2543
 
9
2544
  Object.defineProperty(exports, "__esModule", ({ value: true }));
10
2545
  exports.claimAsync = claimAsync;
@@ -108,11 +2643,218 @@ async function prepareToolsAsync(bootUuid) {
108
2643
  }
109
2644
 
110
2645
 
2646
+ /***/ }),
2647
+
2648
+ /***/ 1098:
2649
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2650
+
2651
+ "use strict";
2652
+
2653
+ var __importDefault = (this && this.__importDefault) || function (mod) {
2654
+ return (mod && mod.__esModule) ? mod : { "default": mod };
2655
+ };
2656
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2657
+ exports.prefetchAsync = prefetchAsync;
2658
+ const node_fs_1 = __nccwpck_require__(3024);
2659
+ const promises_1 = __nccwpck_require__(1455);
2660
+ const node_os_1 = __importDefault(__nccwpck_require__(8161));
2661
+ const node_path_1 = __importDefault(__nccwpck_require__(6760));
2662
+ const expoGo_1 = __nccwpck_require__(1108);
2663
+ const processes_1 = __nccwpck_require__(3973);
2664
+ const PREFETCH_TIMEOUT_MS = 300_000;
2665
+ /** Store the selected Expo Go archive and pinned Appium/XCUITest/WDA files without booting devices. */
2666
+ async function prefetchAsync(signal) {
2667
+ signal?.throwIfAborted();
2668
+ const [appiumVersion = '', xcuitestVersion = ''] = readPins('Appium', ['APPIUM_VERSION', 'XCUITEST_VERSION']) ?? [];
2669
+ // selectExpoGoAsync reads the pin itself. This check fails a bad value before any command or
2670
+ // download.
2671
+ if (process.env.EXPO_SIMULATOR_PREINSTALL_EXPO_GO !== '0') {
2672
+ readPins('Expo Go', ['EXPO_GO_SDK_VERSION']);
2673
+ }
2674
+ const manifestPath = node_path_1.default.join(node_os_1.default.homedir(), 'Library', 'Caches', 'expo-simulator-startup', 'prepared.json');
2675
+ const manifest = {
2676
+ tools: {},
2677
+ };
2678
+ // A new preparation attempt must not advertise an earlier set of versions.
2679
+ await (0, promises_1.rm)(manifestPath, { force: true });
2680
+ const tmpdir = await (0, promises_1.mkdtemp)(node_path_1.default.join(node_os_1.default.tmpdir(), 'simulator-launcher-prefetch-'));
2681
+ const environment = {
2682
+ TMPDIR: process.env.TMPDIR,
2683
+ APPIUM_HOME: process.env.APPIUM_HOME,
2684
+ npm_config_cache: process.env.npm_config_cache,
2685
+ };
2686
+ try {
2687
+ process.env.TMPDIR = tmpdir;
2688
+ const expoGo = await prefetchExpoGoAsync(tmpdir, signal);
2689
+ if (expoGo) {
2690
+ manifest.tools['expo-go'] = expoGo;
2691
+ }
2692
+ const appium = await prefetchAppiumAsync(tmpdir, appiumVersion, xcuitestVersion, signal);
2693
+ if (appium) {
2694
+ manifest.tools.appium = appium;
2695
+ }
2696
+ }
2697
+ finally {
2698
+ for (const [key, value] of Object.entries(environment)) {
2699
+ if (value === undefined) {
2700
+ delete process.env[key];
2701
+ }
2702
+ else {
2703
+ process.env[key] = value;
2704
+ }
2705
+ }
2706
+ processes_1.commands.throwIfCommandCloseTimedOut();
2707
+ await (0, promises_1.rm)(tmpdir, { recursive: true, force: true });
2708
+ }
2709
+ signal?.throwIfAborted();
2710
+ try {
2711
+ await (0, promises_1.mkdir)(node_path_1.default.dirname(manifestPath), { recursive: true });
2712
+ signal?.throwIfAborted();
2713
+ await (0, promises_1.writeFile)(manifestPath, `${JSON.stringify(manifest)}\n`);
2714
+ signal?.throwIfAborted();
2715
+ }
2716
+ catch (error) {
2717
+ await (0, promises_1.rm)(manifestPath, { force: true });
2718
+ throw error;
2719
+ }
2720
+ return 0;
2721
+ }
2722
+ async function prefetchExpoGoAsync(tmpdir, signal) {
2723
+ // A skipped step leaves no older archive.
2724
+ const directory = (0, expoGo_1.expoGoArchiveCacheDirectory)();
2725
+ await (0, promises_1.rm)(directory, { recursive: true, force: true });
2726
+ if (process.env.EXPO_SIMULATOR_PREINSTALL_EXPO_GO === '0') {
2727
+ process.stderr.write('Skipping Expo Go: EXPO_SIMULATOR_PREINSTALL_EXPO_GO=0.\n');
2728
+ return;
2729
+ }
2730
+ let prepared;
2731
+ await prefetchStepAsync('Expo Go', async (signal) => {
2732
+ // The same selection as start, so start finds this file while the release is current.
2733
+ const { sdk, url } = await (0, expoGo_1.selectExpoGoAsync)(signal);
2734
+ const file = (0, expoGo_1.expoGoArchiveCachePath)(url);
2735
+ try {
2736
+ await (0, promises_1.mkdir)(directory, { recursive: true });
2737
+ await (0, expoGo_1.downloadExpoGoAsync)(url, file, signal);
2738
+ await (0, expoGo_1.extractCheckedExpoGoAsync)(file, node_path_1.default.join(tmpdir, 'ExpoGo.app'), signal, (file, args) => processes_1.commands.runOwnedAsync(file, args, signal));
2739
+ }
2740
+ catch (error) {
2741
+ processes_1.commands.throwIfCommandCloseTimedOut();
2742
+ await (0, promises_1.rm)(directory, { recursive: true, force: true });
2743
+ throw error;
2744
+ }
2745
+ prepared = { sdk, url };
2746
+ return `SDK ${sdk} from ${url}`;
2747
+ }, signal);
2748
+ return prepared;
2749
+ }
2750
+ async function prefetchAppiumAsync(tmpdir, appiumVersion, xcuitestVersion, signal) {
2751
+ // Build-tools reads this home (startAppiumRemoteSession.ts). README: "Prepared files".
2752
+ const home = node_path_1.default.join(node_os_1.default.homedir(), 'Library', 'Caches', 'expo-simulator-startup', 'appium');
2753
+ const appium = node_path_1.default.join(home, 'node_modules', '.bin', 'appium');
2754
+ const wda = node_path_1.default.join(home, 'preinstalled-wda');
2755
+ // A skipped step leaves no older home, so build-tools then installs as before.
2756
+ await (0, promises_1.rm)(home, { recursive: true, force: true });
2757
+ if (!appiumVersion) {
2758
+ process.stderr.write('Skipping Appium: APPIUM_VERSION and XCUITEST_VERSION are not set.\n');
2759
+ return;
2760
+ }
2761
+ try {
2762
+ await (0, promises_1.mkdir)(home, { recursive: true });
2763
+ // The same package.json as the job-time home in build-tools.
2764
+ await (0, promises_1.writeFile)(node_path_1.default.join(home, 'package.json'), `${JSON.stringify({ name: 'eas-appium-home', private: true })}\n`);
2765
+ Object.assign(process.env, {
2766
+ APPIUM_HOME: home,
2767
+ npm_config_cache: node_path_1.default.join(tmpdir, 'npm-cache'),
2768
+ });
2769
+ await prefetchStepAsync(`appium@${appiumVersion}`, async (signal) => {
2770
+ await processes_1.commands.runOwnedAsync('npm', ['install', '--no-audit', '--save-exact', '--prefix', home, `appium@${appiumVersion}`], signal);
2771
+ }, signal);
2772
+ await prefetchStepAsync(`xcuitest@${xcuitestVersion}`, async (signal) => {
2773
+ await processes_1.commands.runOwnedAsync(appium, ['driver', 'install', `xcuitest@${xcuitestVersion}`], signal);
2774
+ }, signal);
2775
+ await prefetchStepAsync('WebDriverAgent', async (signal) => {
2776
+ await processes_1.commands.runOwnedAsync(appium, [
2777
+ 'driver',
2778
+ 'run',
2779
+ 'xcuitest',
2780
+ 'download-wda',
2781
+ '--',
2782
+ '--outdir',
2783
+ wda,
2784
+ '--platform',
2785
+ 'iOS',
2786
+ '--kind',
2787
+ 'sim',
2788
+ ], signal);
2789
+ const runner = node_path_1.default.join(wda, 'WebDriverAgentRunner-Runner.app');
2790
+ if (!(await (0, promises_1.stat)(runner)).isDirectory()) {
2791
+ throw new Error('WebDriverAgentRunner-Runner.app is not a directory.');
2792
+ }
2793
+ const metadata = node_path_1.default.join(runner, 'Info.plist');
2794
+ await (0, promises_1.access)(metadata, node_fs_1.constants.R_OK);
2795
+ const executable = (await processes_1.commands.runOwnedAsync('/usr/bin/plutil', ['-extract', 'CFBundleExecutable', 'raw', '-expect', 'string', '-o', '-', metadata], signal)).trim();
2796
+ if (!executable ||
2797
+ node_path_1.default.basename(executable) !== executable ||
2798
+ executable === '.' ||
2799
+ executable === '..') {
2800
+ throw new Error('WebDriverAgent has an invalid bundle executable.');
2801
+ }
2802
+ const binary = node_path_1.default.join(runner, executable);
2803
+ await (0, promises_1.access)(binary, node_fs_1.constants.R_OK | node_fs_1.constants.X_OK);
2804
+ const binaryStat = await (0, promises_1.stat)(binary);
2805
+ if (!binaryStat.isFile() || binaryStat.size === 0) {
2806
+ throw new Error('WebDriverAgent has an invalid bundle executable.');
2807
+ }
2808
+ }, signal);
2809
+ return { version: appiumVersion, xcuitest: xcuitestVersion, home };
2810
+ }
2811
+ catch (error) {
2812
+ processes_1.commands.throwIfCommandCloseTimedOut();
2813
+ await (0, promises_1.rm)(home, { recursive: true, force: true });
2814
+ throw error;
2815
+ }
2816
+ }
2817
+ /** Returns the exact (x.y.z) versions in these variables, or undefined when none is set. */
2818
+ function readPins(name, variables) {
2819
+ const versions = variables.map(variable => process.env[variable] ?? '');
2820
+ if (versions.every(version => !version)) {
2821
+ return undefined;
2822
+ }
2823
+ if (!versions.every(version => /^\d+\.\d+\.\d+$/.test(version))) {
2824
+ throw new Error(variables.length === 1
2825
+ ? `Could not prefetch ${name}: set ${variables[0]} to an exact version (x.y.z), or leave it unset.`
2826
+ : `Could not prefetch ${name}: set all of ${variables.join(', ')} to exact versions (x.y.z), or none of them.`);
2827
+ }
2828
+ return versions;
2829
+ }
2830
+ /** Runs one step with its own timeout. Progress goes to stderr; stdout stays empty. */
2831
+ async function prefetchStepAsync(name, run, parentSignal) {
2832
+ process.stderr.write(`Prefetching ${name}.\n`);
2833
+ const timeout = AbortSignal.timeout(PREFETCH_TIMEOUT_MS);
2834
+ const signal = parentSignal ? AbortSignal.any([parentSignal, timeout]) : timeout;
2835
+ let detail;
2836
+ try {
2837
+ detail = await run(signal);
2838
+ }
2839
+ catch (error) {
2840
+ if (timeout.aborted) {
2841
+ throw new Error(`Could not prefetch ${name} within ${PREFETCH_TIMEOUT_MS / 1000} seconds.`, {
2842
+ cause: error,
2843
+ });
2844
+ }
2845
+ const message = error instanceof Error ? error.message : String(error);
2846
+ throw new Error(`Could not prefetch ${name}: ${message}`, { cause: error });
2847
+ }
2848
+ process.stderr.write(`Prefetched ${name}${detail ? ` (${detail})` : ''}.\n`);
2849
+ }
2850
+
2851
+
111
2852
  /***/ }),
112
2853
 
113
2854
  /***/ 8145:
114
2855
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
115
2856
 
2857
+ "use strict";
116
2858
 
117
2859
  Object.defineProperty(exports, "__esModule", ({ value: true }));
118
2860
  exports.startAsync = startAsync;
@@ -120,22 +2862,28 @@ exports.runWarmSimulatorSessionAsync = runWarmSimulatorSessionAsync;
120
2862
  exports.createWarmSimulatorSession = createWarmSimulatorSession;
121
2863
  const node_events_1 = __nccwpck_require__(8474);
122
2864
  const promises_1 = __nccwpck_require__(8500);
2865
+ const prefetch_1 = __nccwpck_require__(1098);
123
2866
  const agentDevice_1 = __nccwpck_require__(1819);
124
2867
  const argent_1 = __nccwpck_require__(4695);
125
2868
  const expoGo_1 = __nccwpck_require__(1108);
2869
+ const preparedExpoGo_1 = __nccwpck_require__(7897);
2870
+ const packageSpecs_1 = __nccwpck_require__(5250);
126
2871
  const processes_1 = __nccwpck_require__(3973);
127
2872
  const serveSim_1 = __nccwpck_require__(1080);
128
2873
  const simulator_1 = __nccwpck_require__(8546);
129
2874
  const state_1 = __nccwpck_require__(5917);
130
2875
  const tools_1 = __nccwpck_require__(6123);
131
2876
  const LAUNCHER_VERSION = (__nccwpck_require__(8330)/* .version */ .rE);
132
- async function startAsync(bootUuid) {
2877
+ async function startAsync(bootUuid, warmup = false) {
133
2878
  const initial = await (0, state_1.updateLauncherStateAsync)(bootUuid, state => {
134
2879
  if (state?.status === 'disabled') {
2880
+ if (warmup) {
2881
+ throw new Error('Warmup requires a fresh boot; preparation is already disabled.');
2882
+ }
135
2883
  return state;
136
2884
  }
137
2885
  if (state) {
138
- throw new Error('Simulator preparation has already been started or disabled for this VM boot.');
2886
+ throw new Error('Simulator preparation has already been started or disabled for this boot.');
139
2887
  }
140
2888
  return {
141
2889
  bootUuid,
@@ -147,12 +2895,15 @@ async function startAsync(bootUuid) {
147
2895
  if (initial.status === 'disabled') {
148
2896
  return 0;
149
2897
  }
150
- await runWarmSimulatorSessionAsync(bootUuid);
2898
+ await runWarmSimulatorSessionAsync(bootUuid, warmup);
151
2899
  return 0;
152
2900
  }
153
- async function runWarmSimulatorSessionAsync(bootUuid) {
2901
+ async function runWarmSimulatorSessionAsync(bootUuid, warmup = false) {
154
2902
  const shutdown = new AbortController();
155
- const signal = shutdown.signal;
2903
+ // This deadline bounds tool preparation; it is not a settling delay. Cleanup is always joined.
2904
+ const signal = warmup
2905
+ ? AbortSignal.any([shutdown.signal, AbortSignal.timeout(600_000)])
2906
+ : shutdown.signal;
156
2907
  const interruption = new Error('Simulator preparation was interrupted; cleanup may still be running.');
157
2908
  const requestShutdown = () => shutdown.abort(interruption);
158
2909
  process.on('SIGTERM', requestShutdown);
@@ -179,6 +2930,7 @@ async function runWarmSimulatorSessionAsync(bootUuid) {
179
2930
  }
180
2931
  const session = createWarmSimulatorSession({
181
2932
  signal,
2933
+ warmup,
182
2934
  throwIfStoppingAsync,
183
2935
  onPreparationFailure(error) {
184
2936
  if (!signal.aborted) {
@@ -266,30 +3018,42 @@ async function runWarmSimulatorSessionAsync(bootUuid) {
266
3018
  try {
267
3019
  try {
268
3020
  if (process.env.EXPO_SIMULATOR_STARTUP !== '1') {
3021
+ if (warmup) {
3022
+ throw new Error('Warmup requires EXPO_SIMULATOR_STARTUP=1.');
3023
+ }
269
3024
  process.stderr.write('EXPO_SIMULATOR_STARTUP is not 1; Simulator warmup is disabled.\n');
270
3025
  requestShutdown();
271
3026
  }
272
- await prepareDefaultDeviceAsync();
273
- await handleOneClaimAsync();
274
- while (!signal.aborted) {
275
- const state = requireOwnedState(await (0, state_1.readLauncherStateAsync)(bootUuid), 'claimed');
276
- if (state.prepareToolsRequested && !state.toolsReady) {
277
- const prepared = await session.prepareToolsAsync();
278
- await (0, state_1.updateLauncherStateAsync)(bootUuid, current => ({
279
- ...requireOwnedState(current, 'claimed'),
280
- ...prepared,
281
- toolsReady: true,
282
- }), signal);
283
- break;
284
- }
285
- await (0, promises_1.setTimeout)(100, undefined, { signal });
3027
+ if (warmup) {
3028
+ await (0, prefetch_1.prefetchAsync)(signal);
3029
+ // Keep the state starting: tool preparation is never available for a job claim.
3030
+ warm = await session.prepareAsync();
3031
+ await session.waitForWarmupAsync();
3032
+ await throwIfStoppingAsync();
286
3033
  }
287
- if (!signal.aborted) {
288
- await (0, node_events_1.once)(signal, 'abort');
3034
+ else {
3035
+ await prepareDefaultDeviceAsync();
3036
+ await handleOneClaimAsync();
3037
+ while (!signal.aborted) {
3038
+ const state = requireOwnedState(await (0, state_1.readLauncherStateAsync)(bootUuid), 'claimed');
3039
+ if (state.prepareToolsRequested && !state.toolsReady) {
3040
+ const prepared = await session.prepareToolsAsync();
3041
+ await (0, state_1.updateLauncherStateAsync)(bootUuid, current => ({
3042
+ ...requireOwnedState(current, 'claimed'),
3043
+ ...prepared,
3044
+ toolsReady: true,
3045
+ }), signal);
3046
+ break;
3047
+ }
3048
+ await (0, promises_1.setTimeout)(100, undefined, { signal });
3049
+ }
3050
+ if (!signal.aborted) {
3051
+ await (0, node_events_1.once)(signal, 'abort');
3052
+ }
289
3053
  }
290
3054
  }
291
3055
  catch (error) {
292
- if (!signal.aborted) {
3056
+ if (warmup || !signal.aborted) {
293
3057
  sessionError ??= error;
294
3058
  }
295
3059
  }
@@ -303,7 +3067,7 @@ async function runWarmSimulatorSessionAsync(bootUuid) {
303
3067
  }
304
3068
  }
305
3069
  /** Own one orphan process and its tool/preinstall work before any preparation awaits. */
306
- function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync, onPreparationFailure, }) {
3070
+ function createWarmSimulatorSession({ signal: parentSignal, warmup = false, throwIfStoppingAsync, onPreparationFailure, }) {
307
3071
  const lifetime = new AbortController();
308
3072
  const signal = AbortSignal.any([parentSignal, lifetime.signal]);
309
3073
  const warmTools = [(0, agentDevice_1.createAgentDeviceTool)(), (0, argent_1.createArgentTool)(onPreparationFailure)];
@@ -321,6 +3085,7 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
321
3085
  let expoGo;
322
3086
  let selectedPreinstall = Promise.resolve(undefined);
323
3087
  let launcherCachePriming = Promise.resolve();
3088
+ let simulatorPreparation = Promise.resolve();
324
3089
  let toolRetirement = Promise.resolve([]);
325
3090
  /**
326
3091
  * Sets up each device once `ready` settles and the device booted: disable apsd and preinstall
@@ -337,6 +3102,9 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
337
3102
  : ready.then(() => (0, simulator_1.waitForSimulatorBootAsync)(udid, signal));
338
3103
  const apsd = booted.then(() => (0, simulator_1.disableApsdAsync)(udid, signal).catch(error => {
339
3104
  signal.throwIfAborted();
3105
+ if (warmup) {
3106
+ throw error;
3107
+ }
340
3108
  process.stderr.write(`Could not disable apsd on ${udid}; continuing: ${error}\n`);
341
3109
  }));
342
3110
  simulatorSetups.set(udid, apsd);
@@ -379,6 +3147,9 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
379
3147
  }
380
3148
  }
381
3149
  async function prepareDefaultAsync() {
3150
+ signal.throwIfAborted();
3151
+ const versions = (0, packageSpecs_1.getConfiguredToolVersions)();
3152
+ const preparedExpoGo = await (0, preparedExpoGo_1.readPreparedExpoGoAsync)();
382
3153
  signal.throwIfAborted();
383
3154
  availableDevices = await (0, simulator_1.listAvailableSimulatorsAsync)(signal);
384
3155
  signal.throwIfAborted();
@@ -397,13 +3168,14 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
397
3168
  const ready = (0, serveSim_1.waitForServeSimReadyAsync)(first.udid, server, signal);
398
3169
  void ready.catch(() => { });
399
3170
  if (process.env.EXPO_SIMULATOR_PREINSTALL_EXPO_GO !== '0') {
400
- expoGo = (0, expoGo_1.startExpoGoPreinstall)(signal);
3171
+ expoGo = (0, expoGo_1.startExpoGoPreinstall)(signal, preparedExpoGo, warmup);
401
3172
  }
402
3173
  for (const tool of warmTools) {
403
3174
  startedTools.set(tool, (0, tools_1.startTool)(tool, first.udid, ready, signal, onPreparationFailure));
404
3175
  }
405
- startSimulatorsSetupAsync(warmDevices.map(device => device.udid), ready).catch(error => {
406
- if (!signal.aborted) {
3176
+ simulatorPreparation = startSimulatorsSetupAsync(warmDevices.map(device => device.udid), ready);
3177
+ void simulatorPreparation.catch(error => {
3178
+ if (!warmup && !signal.aborted) {
407
3179
  process.stderr.write(`Could not finish Simulator warmup; continuing: ${error}\n`);
408
3180
  }
409
3181
  });
@@ -415,6 +3187,7 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
415
3187
  throw new Error('The warm Simulator tool paths are not configured.');
416
3188
  }
417
3189
  info = {
3190
+ ...versions,
418
3191
  device: first,
419
3192
  server: serverInfo,
420
3193
  controllerPid: process.pid,
@@ -428,6 +3201,22 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
428
3201
  async prepareAsync() {
429
3202
  return await (preparation ??= prepareDefaultAsync());
430
3203
  },
3204
+ async waitForWarmupAsync() {
3205
+ await preparation;
3206
+ await Promise.all([
3207
+ simulatorPreparation,
3208
+ ...[...startedTools.values()].map(tool => tool.ready),
3209
+ ]);
3210
+ if (expoGo) {
3211
+ // Every install has settled. Reuse claim's existing result checks and archive drain.
3212
+ for (const device of warmDevices) {
3213
+ if (!(await expoGo.claimAsync(device.udid))) {
3214
+ throw new Error(`Expo Go preparation did not finish on Simulator ${device.udid}.`);
3215
+ }
3216
+ }
3217
+ }
3218
+ signal.throwIfAborted();
3219
+ },
431
3220
  async claimAsync(input) {
432
3221
  if (request || stopping) {
433
3222
  throw new Error('This warm Simulator session has already been claimed or is stopping.');
@@ -552,9 +3341,10 @@ function createWarmSimulatorSession({ signal: parentSignal, throwIfStoppingAsync
552
3341
 
553
3342
  /***/ }),
554
3343
 
555
- /***/ 6197:
3344
+ /***/ 8578:
556
3345
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
557
3346
 
3347
+ "use strict";
558
3348
 
559
3349
  Object.defineProperty(exports, "__esModule", ({ value: true }));
560
3350
  exports.stopAsync = stopAsync;
@@ -575,6 +3365,7 @@ async function stopAsync(bootUuid) {
575
3365
  /***/ 8097:
576
3366
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
577
3367
 
3368
+ "use strict";
578
3369
 
579
3370
  var __importDefault = (this && this.__importDefault) || function (mod) {
580
3371
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -584,8 +3375,9 @@ exports.mainAsync = mainAsync;
584
3375
  exports.runCliAsync = runCliAsync;
585
3376
  const node_path_1 = __importDefault(__nccwpck_require__(6760));
586
3377
  const claim_1 = __nccwpck_require__(529);
3378
+ const prefetch_1 = __nccwpck_require__(1098);
587
3379
  const start_1 = __nccwpck_require__(8145);
588
- const stop_1 = __nccwpck_require__(6197);
3380
+ const stop_1 = __nccwpck_require__(8578);
589
3381
  const processes_1 = __nccwpck_require__(3973);
590
3382
  async function mainAsync(args = process.argv.slice(2)) {
591
3383
  if (process.platform !== 'darwin') {
@@ -595,18 +3387,37 @@ async function mainAsync(args = process.argv.slice(2)) {
595
3387
  process.stdout.write(`${(__nccwpck_require__(8330)/* .version */ .rE)}\n`);
596
3388
  return 0;
597
3389
  }
3390
+ if (args.length === 1 && args[0] === 'prefetch') {
3391
+ const shutdown = new AbortController();
3392
+ const stop = () => shutdown.abort(new Error('Simulator prefetch was interrupted.'));
3393
+ process.on('SIGINT', stop);
3394
+ process.on('SIGTERM', stop);
3395
+ try {
3396
+ return await (0, prefetch_1.prefetchAsync)(shutdown.signal);
3397
+ }
3398
+ finally {
3399
+ process.off('SIGINT', stop);
3400
+ process.off('SIGTERM', stop);
3401
+ }
3402
+ }
598
3403
  const [command, engine, requestedDevice] = args;
599
3404
  if (command !== 'start' &&
3405
+ command !== 'warmup' &&
600
3406
  command !== 'stop' &&
601
3407
  command !== 'claim' &&
602
3408
  command !== 'prepare-tools') {
603
- throw new Error('Usage: simulator-launcher <start|stop|claim ENGINE [DEVICE]|prepare-tools>');
3409
+ throw new Error('Usage: simulator-launcher <warmup|start|stop|claim ENGINE [DEVICE]|prepare-tools|prefetch>');
3410
+ }
3411
+ if (command === 'warmup' && args.length !== 1) {
3412
+ throw new Error('Usage: simulator-launcher warmup');
604
3413
  }
605
3414
  const bootUuid = (await processes_1.commands.runAsync('/usr/sbin/sysctl', ['-n', 'kern.bootsessionuuid'])).trim();
606
3415
  if (!bootUuid) {
607
3416
  throw new Error('Could not read the VM boot identifier (kern.bootsessionuuid); startup cannot continue.');
608
3417
  }
609
3418
  switch (command) {
3419
+ case 'warmup':
3420
+ return await (0, start_1.startAsync)(bootUuid, true);
610
3421
  case 'start':
611
3422
  return await (0, start_1.startAsync)(bootUuid);
612
3423
  case 'stop':
@@ -636,6 +3447,7 @@ if (process.argv[1] && node_path_1.default.resolve(process.argv[1]) === node_pat
636
3447
  /***/ 1819:
637
3448
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
638
3449
 
3450
+ "use strict";
639
3451
 
640
3452
  var __importDefault = (this && this.__importDefault) || function (mod) {
641
3453
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -644,9 +3456,9 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
644
3456
  exports.createAgentDeviceTool = createAgentDeviceTool;
645
3457
  const node_os_1 = __importDefault(__nccwpck_require__(8161));
646
3458
  const node_path_1 = __importDefault(__nccwpck_require__(6760));
3459
+ const packageSpecs_1 = __nccwpck_require__(5250);
647
3460
  const processes_1 = __nccwpck_require__(3973);
648
3461
  const tools_1 = __nccwpck_require__(6123);
649
- const packageSpec = () => `agent-device@${process.env.AGENT_DEVICE_VERSION || 'latest'}`;
650
3462
  /** `prepare ios-runner` builds and starts the runner and its daemon; it exits once both are up. */
651
3463
  function createAgentDeviceTool() {
652
3464
  const stateDir = (process.env.AGENT_DEVICE_STATE_DIR ||= node_path_1.default.join(node_os_1.default.homedir(), 'Library/Caches/expo-simulator-startup/agent-device'));
@@ -660,7 +3472,7 @@ function createAgentDeviceTool() {
660
3472
  async startAsync(udid, signal) {
661
3473
  signal.throwIfAborted();
662
3474
  prepareProcess = processes_1.commands.start('bunx', [
663
- packageSpec(),
3475
+ (0, packageSpecs_1.agentDevicePackageSpec)(),
664
3476
  'prepare',
665
3477
  'ios-runner',
666
3478
  '--platform',
@@ -685,7 +3497,7 @@ function createAgentDeviceTool() {
685
3497
  // The daemon outlives the prepare process, so it stops even if the prepare stop failed.
686
3498
  // A stop that cannot finish fails instead of blocking cleanup forever.
687
3499
  await processes_1.commands
688
- .runAsync('bunx', [packageSpec(), 'daemon', 'stop', '--clean', '--state-dir', stateDir], AbortSignal.timeout(120_000))
3500
+ .runAsync('bunx', [(0, packageSpecs_1.agentDevicePackageSpec)(), 'daemon', 'stop', '--clean', '--state-dir', stateDir], AbortSignal.timeout(120_000))
689
3501
  .catch(error => errors.push(error));
690
3502
  if (errors.length > 1) {
691
3503
  throw new AggregateError(errors, 'agent-device could not be stopped.');
@@ -703,6 +3515,7 @@ function createAgentDeviceTool() {
703
3515
  /***/ 4695:
704
3516
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
705
3517
 
3518
+ "use strict";
706
3519
 
707
3520
  var __importDefault = (this && this.__importDefault) || function (mod) {
708
3521
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -714,8 +3527,8 @@ const node_os_1 = __importDefault(__nccwpck_require__(8161));
714
3527
  const node_path_1 = __importDefault(__nccwpck_require__(6760));
715
3528
  const promises_2 = __nccwpck_require__(8500);
716
3529
  const zod_1 = __nccwpck_require__(3704);
3530
+ const packageSpecs_1 = __nccwpck_require__(5250);
717
3531
  const processes_1 = __nccwpck_require__(3973);
718
- const packageSpec = () => `@swmansion/argent@${process.env.ARGENT_VERSION || 'latest'}`;
719
3532
  const ArgentStateSchema = zod_1.z.object({
720
3533
  pid: zod_1.z.number().int().min(2),
721
3534
  port: zod_1.z.literal(3201),
@@ -743,7 +3556,7 @@ function createArgentTool(onUnexpectedExit) {
743
3556
  ['disable', 'video-watermark'],
744
3557
  ]) {
745
3558
  signal.throwIfAborted();
746
- await processes_1.commands.runAsync('bunx', [packageSpec(), verb, flag], signal).catch(error => {
3559
+ await processes_1.commands.runAsync('bunx', [(0, packageSpecs_1.argentPackageSpec)(), verb, flag], signal).catch(error => {
747
3560
  if (verb !== 'disable') {
748
3561
  throw error;
749
3562
  }
@@ -755,7 +3568,7 @@ function createArgentTool(onUnexpectedExit) {
755
3568
  signal.throwIfAborted();
756
3569
  stopping = false;
757
3570
  serverProcess = processes_1.commands.start('bunx', [
758
- packageSpec(),
3571
+ (0, packageSpecs_1.argentPackageSpec)(),
759
3572
  'server',
760
3573
  'start',
761
3574
  '--host',
@@ -842,12 +3655,19 @@ function createArgentTool(onUnexpectedExit) {
842
3655
  /***/ 1108:
843
3656
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
844
3657
 
3658
+ "use strict";
845
3659
 
846
3660
  var __importDefault = (this && this.__importDefault) || function (mod) {
847
3661
  return (mod && mod.__esModule) ? mod : { "default": mod };
848
3662
  };
849
3663
  Object.defineProperty(exports, "__esModule", ({ value: true }));
850
3664
  exports.startExpoGoPreinstall = startExpoGoPreinstall;
3665
+ exports.selectExpoGoAsync = selectExpoGoAsync;
3666
+ exports.downloadExpoGoAsync = downloadExpoGoAsync;
3667
+ exports.expoGoArchiveCacheDirectory = expoGoArchiveCacheDirectory;
3668
+ exports.expoGoArchiveCachePath = expoGoArchiveCachePath;
3669
+ exports.extractCheckedExpoGoAsync = extractCheckedExpoGoAsync;
3670
+ const node_crypto_1 = __nccwpck_require__(7598);
851
3671
  const node_fs_1 = __nccwpck_require__(3024);
852
3672
  const promises_1 = __importDefault(__nccwpck_require__(1455));
853
3673
  const node_os_1 = __importDefault(__nccwpck_require__(8161));
@@ -865,10 +3685,13 @@ const VersionsSchema = zod_1.z.object({
865
3685
  })),
866
3686
  });
867
3687
  /**
868
- * Downloads the latest stable Expo Go once, for every warm device. Claim forbids later installs;
869
- * started native installs and the shared archive stay owned until claim or stop releases them.
3688
+ * Prepares the Expo Go of EXPO_GO_SDK_VERSION, or else the latest stable one, once for every warm
3689
+ * device, from the prefetched archive or a download. Claim forbids later installs; started native
3690
+ * installs and the shared archive stay owned until claim or stop releases them.
870
3691
  */
871
- function startExpoGoPreinstall(signal) {
3692
+ function startExpoGoPreinstall(signal, prepared, warmup = false) {
3693
+ // Tool preparation is finite and cancellable; runtime claims still drain native installs.
3694
+ const runAsync = async (file, args) => warmup ? await processes_1.commands.runOwnedAsync(file, args, signal) : await processes_1.commands.runAsync(file, args);
872
3695
  const downloadController = new AbortController();
873
3696
  const downloadSignal = AbortSignal.any([
874
3697
  signal,
@@ -883,34 +3706,34 @@ function startExpoGoPreinstall(signal) {
883
3706
  let cleanup;
884
3707
  const archive = (async () => {
885
3708
  const directoryPath = await directory;
886
- const response = await fetch(VERSIONS_URL, { headers: HEADERS, signal: downloadSignal });
887
- if (!response.ok) {
888
- throw new Error(`Expo Go versions returned HTTP ${response.status}.`);
889
- }
890
- const { sdkVersions } = VersionsSchema.parse(await response.json());
891
- // Same latest stable release policy as expo.dev/go (GoScene/utils.ts).
892
- const sdk = Object.keys(sdkVersions)
893
- .filter(sdk => /\b(\d*)\.0\.0/.test(sdk))
894
- .slice(-10)
895
- .reverse()
896
- .find(sdk => sdkVersions[sdk].releaseNoteUrl && !sdkVersions[sdk].isBeta);
897
- const url = sdk && sdkVersions[sdk].iosClientUrl;
898
- if (!url || new URL(url).protocol !== 'https:') {
899
- throw new Error('No stable Expo Go Simulator archive is available.');
900
- }
901
- const archive = await fetch(url, { headers: HEADERS, signal: downloadSignal });
902
- if (!archive.ok || !archive.body) {
903
- throw new Error(`Expo Go archive returned HTTP ${archive.status}.`);
3709
+ const { sdk, url } = prepared ?? (await selectExpoGoAsync(downloadSignal));
3710
+ // Only prefetch writes the cache. A miss or a bad archive continues with the download.
3711
+ const cachedArchivePath = expoGoArchiveCachePath(url);
3712
+ const cached = await promises_1.default
3713
+ .access(cachedArchivePath)
3714
+ .then(() => true)
3715
+ .catch(() => false);
3716
+ if (cached) {
3717
+ // A claim or stop during the lookup ends the work, as the download fetch would.
3718
+ downloadSignal.throwIfAborted();
3719
+ process.stderr.write(`Using the prefetched Expo Go archive for SDK ${sdk}.\n`);
3720
+ const appPath = node_path_1.default.join(directoryPath, 'cached', 'ExpoGo.app');
3721
+ try {
3722
+ await extractCheckedExpoGoAsync(cachedArchivePath, appPath, downloadSignal, runAsync);
3723
+ return { appPath, sdk };
3724
+ }
3725
+ catch (error) {
3726
+ processes_1.commands.throwIfCommandCloseTimedOut();
3727
+ downloadSignal.throwIfAborted();
3728
+ process.stderr.write(`Could not use the prefetched Expo Go archive: ${error}\n`);
3729
+ }
904
3730
  }
905
3731
  const archivePath = node_path_1.default.join(directoryPath, 'expo-go.tar.gz');
906
- await archive.body.pipeTo(node_stream_1.Writable.toWeb((0, node_fs_1.createWriteStream)(archivePath)), {
907
- signal: downloadSignal,
908
- });
909
- downloadSignal.throwIfAborted();
3732
+ await downloadExpoGoAsync(url, archivePath, downloadSignal);
910
3733
  // Wait for the owned extractor to close, including on bad archives and claim/stop.
911
3734
  const appPath = node_path_1.default.join(directoryPath, 'ExpoGo.app');
912
3735
  await promises_1.default.mkdir(appPath);
913
- await processes_1.commands.runAsync('/usr/bin/tar', ['-xzf', archivePath, '-C', appPath]);
3736
+ await runAsync('/usr/bin/tar', ['-xzf', archivePath, '-C', appPath]);
914
3737
  downloadSignal.throwIfAborted();
915
3738
  await promises_1.default.access(node_path_1.default.join(appPath, 'Info.plist'));
916
3739
  return { appPath, sdk };
@@ -926,9 +3749,9 @@ function startExpoGoPreinstall(signal) {
926
3749
  installSignal.throwIfAborted();
927
3750
  // No await between checking the claim latch and registering the native install.
928
3751
  process.stderr.write(`Preinstalling Expo Go for SDK ${sdk} on Simulator ${target}.\n`);
929
- installation = processes_1.commands.runAsync('xcrun', ['simctl', 'install', target, appPath]).then(async () => {
3752
+ installation = runAsync('xcrun', ['simctl', 'install', target, appPath]).then(async () => {
930
3753
  process.stderr.write('Expo Go preinstall finished.\n');
931
- const info = await readPreinstalledAppAsync(target, appPath).catch(error => {
3754
+ const info = await readPreinstalledAppAsync(target, appPath, runAsync).catch(error => {
932
3755
  process.stderr.write(`Could not read the preinstalled Expo Go version: ${error}\n`);
933
3756
  return undefined;
934
3757
  });
@@ -997,18 +3820,148 @@ function startExpoGoPreinstall(signal) {
997
3820
  },
998
3821
  };
999
3822
  }
1000
- async function readPreinstalledAppAsync(udid, appPath) {
3823
+ /**
3824
+ * Selects the Expo Go Simulator archive of EXPO_GO_SDK_VERSION, or else of the latest stable SDK.
3825
+ * The archive URL must be https.
3826
+ */
3827
+ async function selectExpoGoAsync(signal) {
3828
+ const response = await fetch(VERSIONS_URL, { headers: HEADERS, signal });
3829
+ if (!response.ok) {
3830
+ throw new Error(`Expo Go versions returned HTTP ${response.status}.`);
3831
+ }
3832
+ const { sdkVersions } = VersionsSchema.parse(await response.json());
3833
+ // A pinned SDK selects its listed release. Otherwise, the same latest stable release policy as
3834
+ // expo.dev/go (GoScene/utils.ts).
3835
+ const pinned = process.env.EXPO_GO_SDK_VERSION || undefined;
3836
+ const sdk = pinned
3837
+ ? Object.keys(sdkVersions).find(sdk => sdk === pinned)
3838
+ : Object.keys(sdkVersions)
3839
+ .filter(sdk => /\b(\d*)\.0\.0/.test(sdk))
3840
+ .slice(-10)
3841
+ .reverse()
3842
+ .find(sdk => sdkVersions[sdk].releaseNoteUrl && !sdkVersions[sdk].isBeta);
3843
+ const url = sdk && sdkVersions[sdk].iosClientUrl;
3844
+ if (!sdk || !url || new URL(url).protocol !== 'https:') {
3845
+ throw new Error(pinned
3846
+ ? `No Expo Go Simulator archive is available for SDK ${pinned}.`
3847
+ : 'No stable Expo Go Simulator archive is available.');
3848
+ }
3849
+ return { sdk, url };
3850
+ }
3851
+ async function downloadExpoGoAsync(url, archivePath, signal) {
3852
+ const archive = await fetch(url, { headers: HEADERS, signal });
3853
+ if (!archive.ok || !archive.body) {
3854
+ throw new Error(`Expo Go archive returned HTTP ${archive.status}.`);
3855
+ }
3856
+ await archive.body.pipeTo(node_stream_1.Writable.toWeb((0, node_fs_1.createWriteStream)(archivePath)), { signal });
3857
+ signal.throwIfAborted();
3858
+ }
3859
+ /** The directory of the archives that prefetch stores. README: "Prepared files". */
3860
+ function expoGoArchiveCacheDirectory() {
3861
+ return node_path_1.default.join(node_os_1.default.homedir(), 'Library', 'Caches', 'expo-simulator-startup', 'expo-go');
3862
+ }
3863
+ /** The archive that prefetch stores for this URL. */
3864
+ function expoGoArchiveCachePath(url) {
3865
+ const name = `${(0, node_crypto_1.createHash)('sha256').update(url).digest('hex')}.tar.gz`;
3866
+ return node_path_1.default.join(expoGoArchiveCacheDirectory(), name);
3867
+ }
3868
+ /**
3869
+ * Extracts a stored archive. gzip -t runs first because tar accepts some changed bytes.
3870
+ * Runtime callers drain both commands without a signal. Tool preparation supplies a runner
3871
+ * that stops the owned process group on cancellation before returning.
3872
+ */
3873
+ async function extractCheckedExpoGoAsync(archivePath, appPath, signal, runAsync = processes_1.commands.runAsync) {
3874
+ await promises_1.default.mkdir(appPath, { recursive: true });
3875
+ signal.throwIfAborted();
3876
+ await runAsync('/usr/bin/gzip', ['-t', archivePath]);
3877
+ signal.throwIfAborted();
3878
+ await runAsync('/usr/bin/tar', ['-xzf', archivePath, '-C', appPath]);
3879
+ signal.throwIfAborted();
3880
+ await promises_1.default.access(node_path_1.default.join(appPath, 'Info.plist'));
3881
+ }
3882
+ async function readPreinstalledAppAsync(udid, appPath, runAsync = processes_1.commands.runAsync) {
1001
3883
  const infoPlistPath = node_path_1.default.join(appPath, 'Info.plist');
1002
- const [bundleIdentifier, shortVersion, version] = await Promise.all(['CFBundleIdentifier', 'CFBundleShortVersionString', 'CFBundleVersion'].map(async (key) => (await processes_1.commands.runAsync('plutil', ['-extract', key, 'raw', '-o', '-', infoPlistPath])).trim()));
3884
+ const [bundleIdentifier, shortVersion, version] = await Promise.all(['CFBundleIdentifier', 'CFBundleShortVersionString', 'CFBundleVersion'].map(async (key) => (await runAsync('plutil', ['-extract', key, 'raw', '-o', '-', infoPlistPath])).trim()));
1003
3885
  return { udid, bundleIdentifier, shortVersion, version };
1004
3886
  }
1005
3887
 
1006
3888
 
3889
+ /***/ }),
3890
+
3891
+ /***/ 5250:
3892
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
3893
+
3894
+ "use strict";
3895
+
3896
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3897
+ exports.argentPackageSpec = exports.agentDevicePackageSpec = exports.serveSimPackageSpec = void 0;
3898
+ exports.getConfiguredToolVersions = getConfiguredToolVersions;
3899
+ const state_1 = __nccwpck_require__(5917);
3900
+ const serveSimPackageSpec = () => `@expo/serve-sim@${process.env.SERVE_SIM_VERSION || 'latest'}`;
3901
+ exports.serveSimPackageSpec = serveSimPackageSpec;
3902
+ const agentDevicePackageSpec = () => `agent-device@${process.env.AGENT_DEVICE_VERSION || 'latest'}`;
3903
+ exports.agentDevicePackageSpec = agentDevicePackageSpec;
3904
+ const argentPackageSpec = () => `@swmansion/argent@${process.env.ARGENT_VERSION || 'latest'}`;
3905
+ exports.argentPackageSpec = argentPackageSpec;
3906
+ /** Report exact caller-supplied versions. Tags/ranges remain unknown until the package runs. */
3907
+ function getConfiguredToolVersions() {
3908
+ const exact = (value) => state_1.PackageVersionSchema.safeParse(value).success ? value : undefined;
3909
+ return {
3910
+ serveSimVersion: exact(process.env.SERVE_SIM_VERSION),
3911
+ agentDeviceVersion: exact(process.env.AGENT_DEVICE_VERSION),
3912
+ argentVersion: exact(process.env.ARGENT_VERSION),
3913
+ };
3914
+ }
3915
+
3916
+
3917
+ /***/ }),
3918
+
3919
+ /***/ 7897:
3920
+ /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
3921
+
3922
+ "use strict";
3923
+
3924
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3925
+ return (mod && mod.__esModule) ? mod : { "default": mod };
3926
+ };
3927
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3928
+ exports.readPreparedExpoGoAsync = readPreparedExpoGoAsync;
3929
+ const promises_1 = __importDefault(__nccwpck_require__(1455));
3930
+ const node_os_1 = __importDefault(__nccwpck_require__(8161));
3931
+ const node_path_1 = __importDefault(__nccwpck_require__(6760));
3932
+ const zod_1 = __nccwpck_require__(3704);
3933
+ const PreparedExpoGoSchema = zod_1.z.object({
3934
+ sdk: zod_1.z.string().regex(/^\d+\.\d+\.\d+$/),
3935
+ url: zod_1.z
3936
+ .string()
3937
+ .url()
3938
+ .refine(url => new URL(url).protocol === 'https:'),
3939
+ });
3940
+ /** Optional archive metadata. Legacy CLI pins never select runtime package versions. */
3941
+ async function readPreparedExpoGoAsync() {
3942
+ if (process.env.EXPO_SIMULATOR_PREINSTALL_EXPO_GO === '0') {
3943
+ return undefined;
3944
+ }
3945
+ try {
3946
+ const contents = await promises_1.default.readFile(node_path_1.default.join(node_os_1.default.homedir(), 'Library', 'Caches', 'expo-simulator-startup', 'prepared.json'), 'utf8');
3947
+ const prepared = zod_1.z
3948
+ .object({ tools: zod_1.z.object({ 'expo-go': PreparedExpoGoSchema.optional() }) })
3949
+ .parse(JSON.parse(contents)).tools['expo-go'];
3950
+ const requested = process.env.EXPO_GO_SDK_VERSION;
3951
+ return requested && prepared?.sdk !== requested ? undefined : prepared;
3952
+ }
3953
+ catch {
3954
+ return undefined;
3955
+ }
3956
+ }
3957
+
3958
+
1007
3959
  /***/ }),
1008
3960
 
1009
3961
  /***/ 3973:
1010
3962
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
1011
3963
 
3964
+ "use strict";
1012
3965
 
1013
3966
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1014
3967
  exports.commands = void 0;
@@ -1073,6 +4026,37 @@ exports.commands = {
1073
4026
  async runAsync(file, args, signal) {
1074
4027
  return await exports.commands.start(file, args, { signal, captureStdout: true }).resultPromise;
1075
4028
  },
4029
+ /** Finite tool preparation: cancellation stops the whole owned group before returning. */
4030
+ async runOwnedAsync(file, args, signal) {
4031
+ signal.throwIfAborted();
4032
+ const handle = exports.commands.start(file, args, { detached: true, captureStdout: true });
4033
+ let stopping;
4034
+ const stop = () => {
4035
+ stopping ??= terminateProcessGroupAsync(handle);
4036
+ void stopping.catch(() => { }); // Joined below, including when the child fails first.
4037
+ };
4038
+ signal.addEventListener('abort', stop, { once: true });
4039
+ if (signal.aborted) {
4040
+ stop();
4041
+ }
4042
+ try {
4043
+ return await handle.resultPromise;
4044
+ }
4045
+ finally {
4046
+ signal.removeEventListener('abort', stop);
4047
+ // Also drain descendants after a successful or failed wrapper exit.
4048
+ if (handle.child.pid) {
4049
+ stop();
4050
+ await stopping?.catch(error => {
4051
+ commandCloseDrainError ||= new Error('Tool preparation cleanup could not be confirmed.', {
4052
+ cause: error,
4053
+ });
4054
+ throw error;
4055
+ });
4056
+ }
4057
+ signal.throwIfAborted();
4058
+ }
4059
+ },
1076
4060
  throwIfCommandCloseTimedOut() {
1077
4061
  if (commandCloseDrainError) {
1078
4062
  throw commandCloseDrainError;
@@ -1297,6 +4281,7 @@ async function terminateProcessGroupAsync(processHandle, graceMs = 5_000) {
1297
4281
  /***/ 1080:
1298
4282
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1299
4283
 
4284
+ "use strict";
1300
4285
 
1301
4286
  var __importDefault = (this && this.__importDefault) || function (mod) {
1302
4287
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -1309,6 +4294,7 @@ const node_os_1 = __importDefault(__nccwpck_require__(8161));
1309
4294
  const node_path_1 = __importDefault(__nccwpck_require__(6760));
1310
4295
  const promises_2 = __nccwpck_require__(8500);
1311
4296
  const zod_1 = __nccwpck_require__(3704);
4297
+ const packageSpecs_1 = __nccwpck_require__(5250);
1312
4298
  const processes_1 = __nccwpck_require__(3973);
1313
4299
  const SERVE_SIM_READY_TIMEOUT_MS = 120_000;
1314
4300
  // The job needs the token from this file; /readyz itself is not token-gated.
@@ -1322,7 +4308,7 @@ const ServeSimStateSchema = zod_1.z.object({
1322
4308
  function startServeSim(devices, signal, port = 3200) {
1323
4309
  signal.throwIfAborted();
1324
4310
  return processes_1.commands.start('bunx', [
1325
- `@expo/serve-sim@${process.env.SERVE_SIM_VERSION || 'latest'}`,
4311
+ (0, packageSpecs_1.serveSimPackageSpec)(),
1326
4312
  ...devices,
1327
4313
  '--host',
1328
4314
  '127.0.0.1',
@@ -1431,6 +4417,7 @@ async function waitForServeSimReadyAsync(udid, server, signal, port = 3200) {
1431
4417
  /***/ 8546:
1432
4418
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
1433
4419
 
4420
+ "use strict";
1434
4421
 
1435
4422
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1436
4423
  exports.listAvailableSimulatorsAsync = listAvailableSimulatorsAsync;
@@ -1551,21 +4538,27 @@ async function disableApsdAsync(udid, signal) {
1551
4538
  /***/ 5917:
1552
4539
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1553
4540
 
4541
+ "use strict";
1554
4542
 
1555
4543
  var __importDefault = (this && this.__importDefault) || function (mod) {
1556
4544
  return (mod && mod.__esModule) ? mod : { "default": mod };
1557
4545
  };
1558
4546
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1559
- exports.LauncherStateSchema = exports.WarmSessionInfoSchema = exports.PreinstalledAppSchema = exports.ClaimInputSchema = exports.WarmServerSchema = exports.SimulatorDeviceSchema = exports.LAUNCHER_STATE_FILE = void 0;
4547
+ exports.LauncherStateSchema = exports.WarmSessionInfoSchema = exports.PreinstalledAppSchema = exports.ClaimInputSchema = exports.WarmServerSchema = exports.SimulatorDeviceSchema = exports.PackageVersionSchema = exports.LAUNCHER_STATE_FILE = void 0;
1560
4548
  exports.readLauncherStateAsync = readLauncherStateAsync;
1561
4549
  exports.updateLauncherStateAsync = updateLauncherStateAsync;
1562
4550
  exports.waitForLauncherStateAsync = waitForLauncherStateAsync;
1563
4551
  const node_crypto_1 = __nccwpck_require__(7598);
1564
4552
  const promises_1 = __importDefault(__nccwpck_require__(1455));
1565
4553
  const promises_2 = __nccwpck_require__(8500);
4554
+ const semver_1 = __importDefault(__nccwpck_require__(8407));
1566
4555
  const zod_1 = __nccwpck_require__(3704);
1567
4556
  exports.LAUNCHER_STATE_FILE = '/tmp/expo-simulator-startup.json';
1568
4557
  const NonBlankStringSchema = zod_1.z.string().regex(/\S/, 'Must not be blank.');
4558
+ // semver also accepts a leading v and whitespace; claims keep exact version inputs.
4559
+ exports.PackageVersionSchema = zod_1.z
4560
+ .string()
4561
+ .refine(value => semver_1.default.valid(value) !== null && value.trim() === value && !value.startsWith('v'));
1569
4562
  exports.SimulatorDeviceSchema = zod_1.z.object({
1570
4563
  udid: NonBlankStringSchema,
1571
4564
  name: NonBlankStringSchema,
@@ -1591,6 +4584,9 @@ exports.PreinstalledAppSchema = zod_1.z.object({
1591
4584
  version: zod_1.z.string(),
1592
4585
  });
1593
4586
  exports.WarmSessionInfoSchema = zod_1.z.object({
4587
+ serveSimVersion: exports.PackageVersionSchema.optional(),
4588
+ agentDeviceVersion: exports.PackageVersionSchema.optional(),
4589
+ argentVersion: exports.PackageVersionSchema.optional(),
1594
4590
  // The default before claim, then the device selected for the job.
1595
4591
  device: exports.SimulatorDeviceSchema,
1596
4592
  server: exports.WarmServerSchema,
@@ -1685,6 +4681,7 @@ async function waitForLauncherStateAsync(bootUuid, isComplete, timeoutMs) {
1685
4681
  /***/ 6123:
1686
4682
  /***/ ((__unused_webpack_module, exports) => {
1687
4683
 
4684
+ "use strict";
1688
4685
 
1689
4686
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1690
4687
  exports.startTool = startTool;
@@ -1739,6 +4736,7 @@ async function untilAbortedAsync(promise, signal) {
1739
4736
  /***/ 1421:
1740
4737
  /***/ ((module) => {
1741
4738
 
4739
+ "use strict";
1742
4740
  module.exports = require("node:child_process");
1743
4741
 
1744
4742
  /***/ }),
@@ -1746,6 +4744,7 @@ module.exports = require("node:child_process");
1746
4744
  /***/ 7598:
1747
4745
  /***/ ((module) => {
1748
4746
 
4747
+ "use strict";
1749
4748
  module.exports = require("node:crypto");
1750
4749
 
1751
4750
  /***/ }),
@@ -1753,6 +4752,7 @@ module.exports = require("node:crypto");
1753
4752
  /***/ 8474:
1754
4753
  /***/ ((module) => {
1755
4754
 
4755
+ "use strict";
1756
4756
  module.exports = require("node:events");
1757
4757
 
1758
4758
  /***/ }),
@@ -1760,6 +4760,7 @@ module.exports = require("node:events");
1760
4760
  /***/ 3024:
1761
4761
  /***/ ((module) => {
1762
4762
 
4763
+ "use strict";
1763
4764
  module.exports = require("node:fs");
1764
4765
 
1765
4766
  /***/ }),
@@ -1767,6 +4768,7 @@ module.exports = require("node:fs");
1767
4768
  /***/ 1455:
1768
4769
  /***/ ((module) => {
1769
4770
 
4771
+ "use strict";
1770
4772
  module.exports = require("node:fs/promises");
1771
4773
 
1772
4774
  /***/ }),
@@ -1774,6 +4776,7 @@ module.exports = require("node:fs/promises");
1774
4776
  /***/ 8161:
1775
4777
  /***/ ((module) => {
1776
4778
 
4779
+ "use strict";
1777
4780
  module.exports = require("node:os");
1778
4781
 
1779
4782
  /***/ }),
@@ -1781,6 +4784,7 @@ module.exports = require("node:os");
1781
4784
  /***/ 6760:
1782
4785
  /***/ ((module) => {
1783
4786
 
4787
+ "use strict";
1784
4788
  module.exports = require("node:path");
1785
4789
 
1786
4790
  /***/ }),
@@ -1788,6 +4792,7 @@ module.exports = require("node:path");
1788
4792
  /***/ 7075:
1789
4793
  /***/ ((module) => {
1790
4794
 
4795
+ "use strict";
1791
4796
  module.exports = require("node:stream");
1792
4797
 
1793
4798
  /***/ }),
@@ -1795,6 +4800,7 @@ module.exports = require("node:stream");
1795
4800
  /***/ 8500:
1796
4801
  /***/ ((module) => {
1797
4802
 
4803
+ "use strict";
1798
4804
  module.exports = require("node:timers/promises");
1799
4805
 
1800
4806
  /***/ }),
@@ -1802,6 +4808,7 @@ module.exports = require("node:timers/promises");
1802
4808
  /***/ 3704:
1803
4809
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1804
4810
 
4811
+ "use strict";
1805
4812
 
1806
4813
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1807
4814
  if (k2 === undefined) k2 = k;
@@ -1842,6 +4849,7 @@ exports["default"] = z;
1842
4849
  /***/ 2109:
1843
4850
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
1844
4851
 
4852
+ "use strict";
1845
4853
 
1846
4854
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1847
4855
  exports.slugify = exports.toUpperCase = exports.toLowerCase = exports.trim = exports.normalize = exports.overwrite = exports.mime = exports.property = exports.endsWith = exports.startsWith = exports.includes = exports.uppercase = exports.lowercase = exports.regex = exports.length = exports.minLength = exports.maxLength = exports.size = exports.minSize = exports.maxSize = exports.multipleOf = exports.nonnegative = exports.nonpositive = exports.negative = exports.positive = exports.gte = exports.gt = exports.lte = exports.lt = void 0;
@@ -1882,6 +4890,7 @@ Object.defineProperty(exports, "slugify", ({ enumerable: true, get: function ()
1882
4890
  /***/ 793:
1883
4891
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1884
4892
 
4893
+ "use strict";
1885
4894
 
1886
4895
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
1887
4896
  if (k2 === undefined) k2 = k;
@@ -1936,6 +4945,7 @@ function date(params) {
1936
4945
  /***/ 1008:
1937
4946
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1938
4947
 
4948
+ "use strict";
1939
4949
 
1940
4950
  // Zod 3 compat layer
1941
4951
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -2004,6 +5014,7 @@ var ZodFirstPartyTypeKind;
2004
5014
  /***/ 1739:
2005
5015
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2006
5016
 
5017
+ "use strict";
2007
5018
 
2008
5019
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2009
5020
  if (k2 === undefined) k2 = k;
@@ -2085,6 +5096,7 @@ exports.ZodRealError = core.$constructor("ZodError", initializer, {
2085
5096
  /***/ 5815:
2086
5097
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2087
5098
 
5099
+ "use strict";
2088
5100
 
2089
5101
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2090
5102
  if (k2 === undefined) k2 = k;
@@ -2165,6 +5177,7 @@ exports.coerce = __importStar(__nccwpck_require__(793));
2165
5177
  /***/ 3695:
2166
5178
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2167
5179
 
5180
+ "use strict";
2168
5181
 
2169
5182
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2170
5183
  if (k2 === undefined) k2 = k;
@@ -2782,6 +5795,7 @@ function fromJSONSchema(schema, params) {
2782
5795
  /***/ 7293:
2783
5796
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2784
5797
 
5798
+ "use strict";
2785
5799
 
2786
5800
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2787
5801
  if (k2 === undefined) k2 = k;
@@ -2849,6 +5863,7 @@ function duration(params) {
2849
5863
  /***/ 1643:
2850
5864
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2851
5865
 
5866
+ "use strict";
2852
5867
 
2853
5868
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2854
5869
  if (k2 === undefined) k2 = k;
@@ -2897,6 +5912,7 @@ exports.safeDecodeAsync = core._safeDecodeAsync(errors_js_1.ZodRealError);
2897
5912
  /***/ 5402:
2898
5913
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
2899
5914
 
5915
+ "use strict";
2900
5916
 
2901
5917
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2902
5918
  if (k2 === undefined) k2 = k;
@@ -4176,6 +7192,7 @@ function preprocess(fn, schema) {
4176
7192
  /***/ 6829:
4177
7193
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
4178
7194
 
7195
+ "use strict";
4179
7196
 
4180
7197
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4181
7198
  if (k2 === undefined) k2 = k;
@@ -5405,6 +8422,7 @@ function _stringFormat(Class, format, fnOrRegex, _params = {}) {
5405
8422
  /***/ 4956:
5406
8423
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
5407
8424
 
8425
+ "use strict";
5408
8426
 
5409
8427
  // import { $ZodType } from "./schemas.js";
5410
8428
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -6013,6 +9031,7 @@ exports.$ZodCheckOverwrite = core.$constructor("$ZodCheckOverwrite", (inst, def)
6013
9031
  /***/ 5338:
6014
9032
  /***/ ((__unused_webpack_module, exports) => {
6015
9033
 
9034
+ "use strict";
6016
9035
 
6017
9036
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6018
9037
  exports.globalConfig = exports.$ZodEncodeError = exports.$ZodAsyncError = exports.$brand = exports.NEVER = void 0;
@@ -6103,6 +9122,7 @@ function config(newConfig) {
6103
9122
  /***/ 3711:
6104
9123
  /***/ ((__unused_webpack_module, exports) => {
6105
9124
 
9125
+ "use strict";
6106
9126
 
6107
9127
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6108
9128
  exports.Doc = void 0;
@@ -6149,6 +9169,7 @@ exports.Doc = Doc;
6149
9169
  /***/ 18:
6150
9170
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
6151
9171
 
9172
+ "use strict";
6152
9173
 
6153
9174
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6154
9175
  if (k2 === undefined) k2 = k;
@@ -6369,6 +9390,7 @@ function prettifyError(error) {
6369
9390
  /***/ 8785:
6370
9391
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
6371
9392
 
9393
+ "use strict";
6372
9394
 
6373
9395
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6374
9396
  if (k2 === undefined) k2 = k;
@@ -6423,6 +9445,7 @@ exports.JSONSchema = __importStar(__nccwpck_require__(6111));
6423
9445
  /***/ 6799:
6424
9446
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
6425
9447
 
9448
+ "use strict";
6426
9449
 
6427
9450
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6428
9451
  exports.JSONSchemaGenerator = void 0;
@@ -6529,6 +9552,7 @@ exports.JSONSchemaGenerator = JSONSchemaGenerator;
6529
9552
  /***/ 4751:
6530
9553
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
6531
9554
 
9555
+ "use strict";
6532
9556
 
6533
9557
  Object.defineProperty(exports, "__esModule", ({ value: true }));
6534
9558
  exports.allProcessors = exports.lazyProcessor = exports.optionalProcessor = exports.promiseProcessor = exports.readonlyProcessor = exports.pipeProcessor = exports.catchProcessor = exports.prefaultProcessor = exports.defaultProcessor = exports.nonoptionalProcessor = exports.nullableProcessor = exports.recordProcessor = exports.tupleProcessor = exports.intersectionProcessor = exports.unionProcessor = exports.objectProcessor = exports.arrayProcessor = exports.setProcessor = exports.mapProcessor = exports.transformProcessor = exports.functionProcessor = exports.customProcessor = exports.successProcessor = exports.fileProcessor = exports.templateLiteralProcessor = exports.nanProcessor = exports.literalProcessor = exports.enumProcessor = exports.dateProcessor = exports.unknownProcessor = exports.anyProcessor = exports.neverProcessor = exports.voidProcessor = exports.undefinedProcessor = exports.nullProcessor = exports.symbolProcessor = exports.bigintProcessor = exports.booleanProcessor = exports.numberProcessor = exports.stringProcessor = void 0;
@@ -7184,6 +10208,7 @@ function toJSONSchema(input, params) {
7184
10208
  /***/ 6111:
7185
10209
  /***/ ((__unused_webpack_module, exports) => {
7186
10210
 
10211
+ "use strict";
7187
10212
 
7188
10213
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7189
10214
 
@@ -7193,6 +10218,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
7193
10218
  /***/ 8668:
7194
10219
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
7195
10220
 
10221
+ "use strict";
7196
10222
 
7197
10223
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7198
10224
  if (k2 === undefined) k2 = k;
@@ -7331,6 +10357,7 @@ exports.safeDecodeAsync = (0, exports._safeDecodeAsync)(errors.$ZodRealError);
7331
10357
  /***/ 2812:
7332
10358
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
7333
10359
 
10360
+ "use strict";
7334
10361
 
7335
10362
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7336
10363
  if (k2 === undefined) k2 = k;
@@ -7504,6 +10531,7 @@ exports.sha512_base64url = fixedBase64url(86);
7504
10531
  /***/ 4178:
7505
10532
  /***/ ((__unused_webpack_module, exports) => {
7506
10533
 
10534
+ "use strict";
7507
10535
 
7508
10536
  var _a;
7509
10537
  Object.defineProperty(exports, "__esModule", ({ value: true }));
@@ -7567,6 +10595,7 @@ exports.globalRegistry = globalThis.__zod_globalRegistry;
7567
10595
  /***/ 8261:
7568
10596
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
7569
10597
 
10598
+ "use strict";
7570
10599
 
7571
10600
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7572
10601
  if (k2 === undefined) k2 = k;
@@ -9700,6 +12729,7 @@ function handleRefineResult(result, payload, input, inst) {
9700
12729
  /***/ 4013:
9701
12730
  /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
9702
12731
 
12732
+ "use strict";
9703
12733
 
9704
12734
  Object.defineProperty(exports, "__esModule", ({ value: true }));
9705
12735
  exports.createStandardJSONSchemaMethod = exports.createToJSONSchemaMethod = void 0;
@@ -10153,6 +13183,7 @@ exports.createStandardJSONSchemaMethod = createStandardJSONSchemaMethod;
10153
13183
  /***/ 6579:
10154
13184
  /***/ ((__unused_webpack_module, exports) => {
10155
13185
 
13186
+ "use strict";
10156
13187
 
10157
13188
  Object.defineProperty(exports, "__esModule", ({ value: true }));
10158
13189
  exports.Class = exports.BIGINT_FORMAT_RANGES = exports.NUMBER_FORMAT_RANGES = exports.primitiveTypes = exports.propertyKeyTypes = exports.getParsedType = exports.allowsEval = exports.captureStackTrace = void 0;
@@ -10870,6 +13901,7 @@ exports.Class = Class;
10870
13901
  /***/ 700:
10871
13902
  /***/ ((__unused_webpack_module, exports) => {
10872
13903
 
13904
+ "use strict";
10873
13905
 
10874
13906
  Object.defineProperty(exports, "__esModule", ({ value: true }));
10875
13907
  exports.version = void 0;
@@ -10885,6 +13917,7 @@ exports.version = {
10885
13917
  /***/ 2304:
10886
13918
  /***/ (function(module, exports, __nccwpck_require__) {
10887
13919
 
13920
+ "use strict";
10888
13921
 
10889
13922
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10890
13923
  if (k2 === undefined) k2 = k;
@@ -11025,6 +14058,7 @@ module.exports = exports.default;
11025
14058
  /***/ 7624:
11026
14059
  /***/ (function(module, exports, __nccwpck_require__) {
11027
14060
 
14061
+ "use strict";
11028
14062
 
11029
14063
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11030
14064
  if (k2 === undefined) k2 = k;
@@ -11164,6 +14198,7 @@ module.exports = exports.default;
11164
14198
  /***/ 4970:
11165
14199
  /***/ (function(module, exports, __nccwpck_require__) {
11166
14200
 
14201
+ "use strict";
11167
14202
 
11168
14203
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11169
14204
  if (k2 === undefined) k2 = k;
@@ -11354,6 +14389,7 @@ module.exports = exports.default;
11354
14389
  /***/ 5160:
11355
14390
  /***/ (function(module, exports, __nccwpck_require__) {
11356
14391
 
14392
+ "use strict";
11357
14393
 
11358
14394
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11359
14395
  if (k2 === undefined) k2 = k;
@@ -11508,6 +14544,7 @@ module.exports = exports.default;
11508
14544
  /***/ 6221:
11509
14545
  /***/ (function(module, exports, __nccwpck_require__) {
11510
14546
 
14547
+ "use strict";
11511
14548
 
11512
14549
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11513
14550
  if (k2 === undefined) k2 = k;
@@ -11649,6 +14686,7 @@ module.exports = exports.default;
11649
14686
  /***/ 6407:
11650
14687
  /***/ (function(module, exports, __nccwpck_require__) {
11651
14688
 
14689
+ "use strict";
11652
14690
 
11653
14691
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11654
14692
  if (k2 === undefined) k2 = k;
@@ -11794,6 +14832,7 @@ module.exports = exports.default;
11794
14832
  /***/ 3048:
11795
14833
  /***/ (function(module, exports, __nccwpck_require__) {
11796
14834
 
14835
+ "use strict";
11797
14836
 
11798
14837
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11799
14838
  if (k2 === undefined) k2 = k;
@@ -11943,6 +14982,7 @@ module.exports = exports.default;
11943
14982
  /***/ 2372:
11944
14983
  /***/ (function(module, exports, __nccwpck_require__) {
11945
14984
 
14985
+ "use strict";
11946
14986
 
11947
14987
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11948
14988
  if (k2 === undefined) k2 = k;
@@ -12085,6 +15125,7 @@ module.exports = exports.default;
12085
15125
  /***/ 5544:
12086
15126
  /***/ (function(module, exports, __nccwpck_require__) {
12087
15127
 
15128
+ "use strict";
12088
15129
 
12089
15130
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12090
15131
  if (k2 === undefined) k2 = k;
@@ -12228,6 +15269,7 @@ module.exports = exports.default;
12228
15269
  /***/ 4513:
12229
15270
  /***/ (function(module, exports, __nccwpck_require__) {
12230
15271
 
15272
+ "use strict";
12231
15273
 
12232
15274
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12233
15275
  if (k2 === undefined) k2 = k;
@@ -12371,6 +15413,7 @@ module.exports = exports.default;
12371
15413
  /***/ 2389:
12372
15414
  /***/ (function(module, exports, __nccwpck_require__) {
12373
15415
 
15416
+ "use strict";
12374
15417
 
12375
15418
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12376
15419
  if (k2 === undefined) k2 = k;
@@ -12537,6 +15580,7 @@ module.exports = exports.default;
12537
15580
  /***/ 3346:
12538
15581
  /***/ (function(module, exports, __nccwpck_require__) {
12539
15582
 
15583
+ "use strict";
12540
15584
 
12541
15585
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12542
15586
  if (k2 === undefined) k2 = k;
@@ -12685,6 +15729,7 @@ module.exports = exports.default;
12685
15729
  /***/ 634:
12686
15730
  /***/ (function(module, exports, __nccwpck_require__) {
12687
15731
 
15732
+ "use strict";
12688
15733
 
12689
15734
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12690
15735
  if (k2 === undefined) k2 = k;
@@ -12831,6 +15876,7 @@ module.exports = exports.default;
12831
15876
  /***/ 4314:
12832
15877
  /***/ (function(module, exports, __nccwpck_require__) {
12833
15878
 
15879
+ "use strict";
12834
15880
 
12835
15881
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12836
15882
  if (k2 === undefined) k2 = k;
@@ -12972,6 +16018,7 @@ module.exports = exports.default;
12972
16018
  /***/ 5049:
12973
16019
  /***/ (function(module, exports, __nccwpck_require__) {
12974
16020
 
16021
+ "use strict";
12975
16022
 
12976
16023
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12977
16024
  if (k2 === undefined) k2 = k;
@@ -13114,6 +16161,7 @@ module.exports = exports.default;
13114
16161
  /***/ 4552:
13115
16162
  /***/ (function(module, exports, __nccwpck_require__) {
13116
16163
 
16164
+ "use strict";
13117
16165
 
13118
16166
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13119
16167
  if (k2 === undefined) k2 = k;
@@ -13362,6 +16410,7 @@ module.exports = exports.default;
13362
16410
  /***/ 8632:
13363
16411
  /***/ (function(module, exports, __nccwpck_require__) {
13364
16412
 
16413
+ "use strict";
13365
16414
 
13366
16415
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13367
16416
  if (k2 === undefined) k2 = k;
@@ -13504,6 +16553,7 @@ module.exports = exports.default;
13504
16553
  /***/ 8204:
13505
16554
  /***/ (function(module, exports, __nccwpck_require__) {
13506
16555
 
16556
+ "use strict";
13507
16557
 
13508
16558
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13509
16559
  if (k2 === undefined) k2 = k;
@@ -13685,6 +16735,7 @@ module.exports = exports.default;
13685
16735
  /***/ 5078:
13686
16736
  /***/ (function(module, exports, __nccwpck_require__) {
13687
16737
 
16738
+ "use strict";
13688
16739
 
13689
16740
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13690
16741
  if (k2 === undefined) k2 = k;
@@ -13825,6 +16876,7 @@ module.exports = exports.default;
13825
16876
  /***/ 2215:
13826
16877
  /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
13827
16878
 
16879
+ "use strict";
13828
16880
 
13829
16881
  var __importDefault = (this && this.__importDefault) || function (mod) {
13830
16882
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -13936,6 +16988,7 @@ Object.defineProperty(exports, "yo", ({ enumerable: true, get: function () { ret
13936
16988
  /***/ 9905:
13937
16989
  /***/ (function(module, exports, __nccwpck_require__) {
13938
16990
 
16991
+ "use strict";
13939
16992
 
13940
16993
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13941
16994
  if (k2 === undefined) k2 = k;
@@ -14079,6 +17132,7 @@ module.exports = exports.default;
14079
17132
  /***/ 2182:
14080
17133
  /***/ (function(module, exports, __nccwpck_require__) {
14081
17134
 
17135
+ "use strict";
14082
17136
 
14083
17137
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14084
17138
  if (k2 === undefined) k2 = k;
@@ -14221,6 +17275,7 @@ module.exports = exports.default;
14221
17275
  /***/ 1998:
14222
17276
  /***/ (function(module, exports, __nccwpck_require__) {
14223
17277
 
17278
+ "use strict";
14224
17279
 
14225
17280
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14226
17281
  if (k2 === undefined) k2 = k;
@@ -14362,6 +17417,7 @@ module.exports = exports.default;
14362
17417
  /***/ 1701:
14363
17418
  /***/ (function(module, exports, __nccwpck_require__) {
14364
17419
 
17420
+ "use strict";
14365
17421
 
14366
17422
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14367
17423
  if (k2 === undefined) k2 = k;
@@ -14508,6 +17564,7 @@ module.exports = exports.default;
14508
17564
  /***/ 5380:
14509
17565
  /***/ (function(module, exports, __nccwpck_require__) {
14510
17566
 
17567
+ "use strict";
14511
17568
 
14512
17569
  var __importDefault = (this && this.__importDefault) || function (mod) {
14513
17570
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -14527,6 +17584,7 @@ module.exports = exports.default;
14527
17584
  /***/ 5249:
14528
17585
  /***/ (function(module, exports, __nccwpck_require__) {
14529
17586
 
17587
+ "use strict";
14530
17588
 
14531
17589
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14532
17590
  if (k2 === undefined) k2 = k;
@@ -14671,6 +17729,7 @@ module.exports = exports.default;
14671
17729
  /***/ 6379:
14672
17730
  /***/ (function(module, exports, __nccwpck_require__) {
14673
17731
 
17732
+ "use strict";
14674
17733
 
14675
17734
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14676
17735
  if (k2 === undefined) k2 = k;
@@ -14816,6 +17875,7 @@ module.exports = exports.default;
14816
17875
  /***/ 4117:
14817
17876
  /***/ (function(module, exports, __nccwpck_require__) {
14818
17877
 
17878
+ "use strict";
14819
17879
 
14820
17880
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14821
17881
  if (k2 === undefined) k2 = k;
@@ -15053,6 +18113,7 @@ module.exports = exports.default;
15053
18113
  /***/ 9701:
15054
18114
  /***/ (function(module, exports, __nccwpck_require__) {
15055
18115
 
18116
+ "use strict";
15056
18117
 
15057
18118
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15058
18119
  if (k2 === undefined) k2 = k;
@@ -15196,6 +18257,7 @@ module.exports = exports.default;
15196
18257
  /***/ 8973:
15197
18258
  /***/ (function(module, exports, __nccwpck_require__) {
15198
18259
 
18260
+ "use strict";
15199
18261
 
15200
18262
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15201
18263
  if (k2 === undefined) k2 = k;
@@ -15337,6 +18399,7 @@ module.exports = exports.default;
15337
18399
  /***/ 7871:
15338
18400
  /***/ (function(module, exports, __nccwpck_require__) {
15339
18401
 
18402
+ "use strict";
15340
18403
 
15341
18404
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15342
18405
  if (k2 === undefined) k2 = k;
@@ -15481,6 +18544,7 @@ module.exports = exports.default;
15481
18544
  /***/ 9100:
15482
18545
  /***/ (function(module, exports, __nccwpck_require__) {
15483
18546
 
18547
+ "use strict";
15484
18548
 
15485
18549
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15486
18550
  if (k2 === undefined) k2 = k;
@@ -15623,6 +18687,7 @@ module.exports = exports.default;
15623
18687
  /***/ 9189:
15624
18688
  /***/ (function(module, exports, __nccwpck_require__) {
15625
18689
 
18690
+ "use strict";
15626
18691
 
15627
18692
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15628
18693
  if (k2 === undefined) k2 = k;
@@ -15766,6 +18831,7 @@ module.exports = exports.default;
15766
18831
  /***/ 8497:
15767
18832
  /***/ (function(module, exports, __nccwpck_require__) {
15768
18833
 
18834
+ "use strict";
15769
18835
 
15770
18836
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15771
18837
  if (k2 === undefined) k2 = k;
@@ -15909,6 +18975,7 @@ module.exports = exports.default;
15909
18975
  /***/ 9214:
15910
18976
  /***/ (function(module, exports, __nccwpck_require__) {
15911
18977
 
18978
+ "use strict";
15912
18979
 
15913
18980
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15914
18981
  if (k2 === undefined) k2 = k;
@@ -16057,6 +19124,7 @@ module.exports = exports.default;
16057
19124
  /***/ 2361:
16058
19125
  /***/ (function(module, exports, __nccwpck_require__) {
16059
19126
 
19127
+ "use strict";
16060
19128
 
16061
19129
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16062
19130
  if (k2 === undefined) k2 = k;
@@ -16199,6 +19267,7 @@ module.exports = exports.default;
16199
19267
  /***/ 5130:
16200
19268
  /***/ (function(module, exports, __nccwpck_require__) {
16201
19269
 
19270
+ "use strict";
16202
19271
 
16203
19272
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16204
19273
  if (k2 === undefined) k2 = k;
@@ -16389,6 +19458,7 @@ module.exports = exports.default;
16389
19458
  /***/ 6128:
16390
19459
  /***/ (function(module, exports, __nccwpck_require__) {
16391
19460
 
19461
+ "use strict";
16392
19462
 
16393
19463
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16394
19464
  if (k2 === undefined) k2 = k;
@@ -16532,6 +19602,7 @@ module.exports = exports.default;
16532
19602
  /***/ 746:
16533
19603
  /***/ (function(module, exports, __nccwpck_require__) {
16534
19604
 
19605
+ "use strict";
16535
19606
 
16536
19607
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16537
19608
  if (k2 === undefined) k2 = k;
@@ -16676,6 +19747,7 @@ module.exports = exports.default;
16676
19747
  /***/ 1784:
16677
19748
  /***/ (function(module, exports, __nccwpck_require__) {
16678
19749
 
19750
+ "use strict";
16679
19751
 
16680
19752
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16681
19753
  if (k2 === undefined) k2 = k;
@@ -16820,6 +19892,7 @@ module.exports = exports.default;
16820
19892
  /***/ 7929:
16821
19893
  /***/ (function(module, exports, __nccwpck_require__) {
16822
19894
 
19895
+ "use strict";
16823
19896
 
16824
19897
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16825
19898
  if (k2 === undefined) k2 = k;
@@ -16964,6 +20037,7 @@ module.exports = exports.default;
16964
20037
  /***/ 5691:
16965
20038
  /***/ (function(module, exports, __nccwpck_require__) {
16966
20039
 
20040
+ "use strict";
16967
20041
 
16968
20042
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16969
20043
  if (k2 === undefined) k2 = k;
@@ -17103,6 +20177,7 @@ module.exports = exports.default;
17103
20177
  /***/ 9999:
17104
20178
  /***/ (function(module, exports, __nccwpck_require__) {
17105
20179
 
20180
+ "use strict";
17106
20181
 
17107
20182
  var __importDefault = (this && this.__importDefault) || function (mod) {
17108
20183
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -17122,6 +20197,7 @@ module.exports = exports.default;
17122
20197
  /***/ 8733:
17123
20198
  /***/ (function(module, exports, __nccwpck_require__) {
17124
20199
 
20200
+ "use strict";
17125
20201
 
17126
20202
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17127
20203
  if (k2 === undefined) k2 = k;
@@ -17264,6 +20340,7 @@ module.exports = exports.default;
17264
20340
  /***/ 2444:
17265
20341
  /***/ (function(module, exports, __nccwpck_require__) {
17266
20342
 
20343
+ "use strict";
17267
20344
 
17268
20345
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17269
20346
  if (k2 === undefined) k2 = k;
@@ -17408,6 +20485,7 @@ module.exports = exports.default;
17408
20485
  /***/ 7124:
17409
20486
  /***/ (function(module, exports, __nccwpck_require__) {
17410
20487
 
20488
+ "use strict";
17411
20489
 
17412
20490
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17413
20491
  if (k2 === undefined) k2 = k;
@@ -17551,6 +20629,7 @@ module.exports = exports.default;
17551
20629
  /***/ 2314:
17552
20630
  /***/ (function(module, exports, __nccwpck_require__) {
17553
20631
 
20632
+ "use strict";
17554
20633
 
17555
20634
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17556
20635
  if (k2 === undefined) k2 = k;
@@ -17693,6 +20772,7 @@ module.exports = exports.default;
17693
20772
  /***/ 9429:
17694
20773
  /***/ (function(module, exports, __nccwpck_require__) {
17695
20774
 
20775
+ "use strict";
17696
20776
 
17697
20777
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17698
20778
  if (k2 === undefined) k2 = k;
@@ -17834,6 +20914,7 @@ module.exports = exports.default;
17834
20914
  /***/ 5295:
17835
20915
  /***/ (function(module, exports, __nccwpck_require__) {
17836
20916
 
20917
+ "use strict";
17837
20918
 
17838
20919
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17839
20920
  if (k2 === undefined) k2 = k;
@@ -17977,6 +21058,7 @@ module.exports = exports.default;
17977
21058
  /***/ 4587:
17978
21059
  /***/ (function(module, exports, __nccwpck_require__) {
17979
21060
 
21061
+ "use strict";
17980
21062
 
17981
21063
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17982
21064
  if (k2 === undefined) k2 = k;
@@ -18118,7 +21200,8 @@ module.exports = exports.default;
18118
21200
  /***/ 8330:
18119
21201
  /***/ ((module) => {
18120
21202
 
18121
- module.exports = {"rE":"27.5.0"};
21203
+ "use strict";
21204
+ module.exports = {"rE":"27.7.0"};
18122
21205
 
18123
21206
  /***/ })
18124
21207