The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Noora, reference 0.56.0 (70c6d1), with Swift 6.1 for macOS (SPM) on 4 Mar 2026 12:36:29 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tuist/noora.git
Reference: 0.56.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tuist/noora
 * tag               0.56.0     -> FETCH_HEAD
HEAD is now at 70c6d14 [Release] Noora CLI 0.56.0
Cloned https://github.com/tuist/noora.git
Revision (git rev-parse @):
70c6d1477a982f3e4cd46ed2d122e04e9d0a0b59
SUCCESS checkout https://github.com/tuist/noora.git at 0.56.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/tuist/noora.git
https://github.com/tuist/noora.git
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.2.1",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.7.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.10.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    },
    {
      "identity" : "path",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.8",
            "upper_bound" : "0.4.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/tuist/path"
    }
  ],
  "manifest_display_name" : "Noora",
  "name" : "Noora",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Noora",
      "targets" : [
        "Noora"
      ],
      "type" : {
        "library" : [
          "static"
        ]
      }
    },
    {
      "name" : "examples-cli",
      "targets" : [
        "examples-cli"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "examples_cli",
      "module_type" : "SwiftTarget",
      "name" : "examples-cli",
      "path" : "cli/Sources/examples-cli",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "examples-cli"
      ],
      "sources" : [
        "Commands/AlertCommand.swift",
        "Commands/CollapsibleStepCommand.swift",
        "Commands/FormatCommand.swift",
        "Commands/InfoCommand.swift",
        "Commands/MultipleChoicePromptCommand.swift",
        "Commands/ProgressBarStepCommand.swift",
        "Commands/ProgressStepCommand.swift",
        "Commands/SingleChoicePromptCommand.swift",
        "Commands/TableCommand.swift",
        "Commands/TextPromptCommand.swift",
        "Commands/YesOrNoChoicePromptCommand.swift",
        "ExamplesCLI.swift"
      ],
      "target_dependencies" : [
        "Noora"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "NooraTests",
      "module_type" : "SwiftTarget",
      "name" : "NooraTests",
      "path" : "cli/Tests/NooraTests",
      "sources" : [
        "Components/CollapsibleStepTests.swift",
        "Components/CompletionTests.swift",
        "Components/MultipleChoicePromptTests.swift",
        "Components/NooraTests.swift",
        "Components/ProgressBarStepTests.swift",
        "Components/ProgressStepTests.swift",
        "Components/SingleChoicePromptTests.swift",
        "Components/TableTests.swift",
        "Components/TextPromptTests.swift",
        "Components/YesOrNoChoicePromptTests.swift",
        "Mocks/MockKeyStrokeListener.swift",
        "Mocks/MockRenderer.swift",
        "Mocks/MockSpinner.swift",
        "Mocks/MockStandardPipeline.swift",
        "Mocks/MockTerminal.swift",
        "Mocks/MockValidator.swift",
        "NooraTheme+Test.swift",
        "Utilities/DisplayWidthTests.swift",
        "Utilities/NooraMockTests.swift",
        "Utilities/SignalBehaviorTests.swift",
        "Utilities/TerminalTextTests.swift",
        "Validator/LengthValidationRuleTests.swift",
        "Validator/NonEmptyValidationRuleTests.swift",
        "Validator/RegexValidationRuleTests.swift",
        "Validator/ValidatorTests.swift"
      ],
      "target_dependencies" : [
        "Noora"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Noora",
      "module_type" : "SwiftTarget",
      "name" : "Noora",
      "path" : "cli/Sources/Noora",
      "product_dependencies" : [
        "Rainbow",
        "Logging",
        "Path"
      ],
      "product_memberships" : [
        "Noora",
        "examples-cli"
      ],
      "sources" : [
        "Components/Alert.swift",
        "Components/CollapsibleStep.swift",
        "Components/MultipleChoicePrompt.swift",
        "Components/ProgressBarStep.swift",
        "Components/ProgressStep.swift",
        "Components/SingleChoicePrompt.swift",
        "Components/Table/PaginatedTable.swift",
        "Components/Table/SelectableTable.swift",
        "Components/Table/Table.swift",
        "Components/Table/TableColumn.swift",
        "Components/Table/TableData.swift",
        "Components/Table/TableRenderer.swift",
        "Components/Table/TableStyle.swift",
        "Components/Table/UpdatingSelectableTable.swift",
        "Components/Table/UpdatingTable.swift",
        "Components/TextPrompt.swift",
        "Components/YesOrNoChoicePrompt.swift",
        "Content.swift",
        "DataStructures/Stack.swift",
        "Extensions/Character+isPrintable.swift",
        "Extensions/String+Rainbow.swift",
        "Extensions/String+ValidatableError.swift",
        "Noora.swift",
        "NooraError.swift",
        "NooraMock.swift",
        "StandardPipelineType.swift",
        "Theme.swift",
        "Utilities/KeyStrokeListener.swift",
        "Utilities/LockIsolated.swift",
        "Utilities/Renderer.swift",
        "Utilities/Spinner.swift",
        "Utilities/StandardPipelines.swift",
        "Utilities/Terminal.swift",
        "Utilities/TerminalText+DisplayWidth.swift",
        "Utilities/TerminalText.swift",
        "Validator/Core/ValidatableError.swift",
        "Validator/Core/ValidatableRule.swift",
        "Validator/Core/ValidationError.swift",
        "Validator/InputValidating.swift",
        "Validator/Rules/LengthValidationRule.swift",
        "Validator/Rules/NonEmptyValidationRule.swift",
        "Validator/Rules/RegexValidationRule.swift",
        "Validator/Validator.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/16] Write sources
[4/16] Write examples-cli-entitlement.plist
[5/16] Write sources
[10/16] Write swift-version-2F0A5646E1D333AE.txt
[12/40] Emitting module Path
[13/40] Compiling Path Path.swift
[14/40] Emitting module ArgumentParserToolInfo
[15/40] Compiling ArgumentParserToolInfo ToolInfo.swift
[16/87] Compiling Logging LogHandler.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[17/87] Compiling Logging Locks.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[18/87] Emitting module Logging
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[19/87] Compiling Logging Logging.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[20/87] Compiling Logging MetadataProvider.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[21/87] Compiling Rainbow Style.swift
[22/88] Compiling Rainbow StringGenerator.swift
[23/88] Compiling Rainbow String+ConditionalStyling.swift
[24/88] Compiling Rainbow String+Rainbow.swift
[25/88] Emitting module ArgumentParser
[26/93] Compiling ArgumentParser CommandConfiguration.swift
[27/93] Compiling ArgumentParser CommandGroup.swift
[28/93] Compiling ArgumentParser EnumerableFlag.swift
[29/93] Compiling ArgumentParser ExpressibleByArgument.swift
[30/93] Compiling ArgumentParser ParsableArguments.swift
[31/93] Compiling ArgumentParser ArgumentHelp.swift
[32/93] Compiling ArgumentParser ArgumentVisibility.swift
[33/93] Compiling ArgumentParser CompletionKind.swift
[34/93] Compiling ArgumentParser Errors.swift
[35/93] Compiling ArgumentParser Flag.swift
[36/93] Compiling ArgumentParser CodingKeyValidator.swift
[37/93] Compiling ArgumentParser NonsenseFlagsValidator.swift
[38/93] Compiling ArgumentParser ParsableArgumentsValidation.swift
[39/93] Compiling ArgumentParser PositionalArgumentsValidator.swift
[40/93] Compiling ArgumentParser UniqueNamesValidator.swift
[41/93] Emitting module Rainbow
[42/93] Compiling Rainbow StyledStringBuilder.swift
[43/93] Compiling ArgumentParser ArgumentDefinition.swift
[44/93] Compiling ArgumentParser ArgumentSet.swift
[45/93] Compiling ArgumentParser FishCompletionsGenerator.swift
[46/93] Compiling ArgumentParser ZshCompletionsGenerator.swift
[47/93] Compiling ArgumentParser BashCompletionsGenerator.swift
[48/93] Compiling ArgumentParser CompletionsGenerator.swift
[49/93] Compiling ArgumentParser Argument.swift
[50/93] Compiling ArgumentParser ArgumentDiscussion.swift
[51/93] Compiling ArgumentParser ParsableCommand.swift
[52/93] Compiling ArgumentParser ArgumentDecoder.swift
[59/133] Compiling Noora TableStyle.swift
[60/133] Compiling Noora UpdatingSelectableTable.swift
[61/133] Compiling Noora UpdatingTable.swift
[62/133] Compiling Noora Character+isPrintable.swift
[63/133] Compiling Noora String+Rainbow.swift
[64/133] Compiling Noora TextPrompt.swift
[65/133] Compiling Noora YesOrNoChoicePrompt.swift
[66/133] Compiling Noora Content.swift
[67/133] Compiling Noora Stack.swift
[68/133] Compiling Noora StandardPipelines.swift
[69/133] Compiling Noora String+ValidatableError.swift
[70/133] Compiling Noora Noora.swift
[71/133] Compiling Noora ValidatableError.swift
[72/133] Compiling Noora ValidatableRule.swift
[73/133] Compiling Noora ValidationError.swift
[74/133] Compiling Noora InputValidating.swift
[75/133] Compiling Noora KeyStrokeListener.swift
[76/133] Compiling Noora LockIsolated.swift
[77/133] Compiling Noora Renderer.swift
[78/133] Compiling Noora Spinner.swift
[79/133] Compiling Noora PaginatedTable.swift
[80/133] Compiling Noora SelectableTable.swift
[81/133] Compiling Noora Table.swift
[82/133] Compiling Noora TableColumn.swift
[83/133] Compiling Noora NooraError.swift
[84/133] Compiling Noora NooraMock.swift
[85/133] Compiling Noora StandardPipelineType.swift
[86/133] Compiling Noora Theme.swift
[87/133] Compiling Noora TableData.swift
[88/133] Compiling Noora TableRenderer.swift
[89/133] Emitting module Noora
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:768:17: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
     :
 766 |     }
 767 |
 768 |     public func progressBarStep<V>(
     |                 `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 769 |         message: String,
 770 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:249:21: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
247 |         }
248 |
249 |         public func progressBarStep<V>(
    |                     `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
250 |             message: String,
251 |             successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:298:10: note: expected sendability to match requirement here
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
[91/137] Compiling Noora Terminal.swift
[92/137] Compiling Noora TerminalText+DisplayWidth.swift
[93/137] Compiling Noora TerminalText.swift
[98/137] Compiling Noora LengthValidationRule.swift
[99/137] Compiling Noora NonEmptyValidationRule.swift
[100/137] Compiling Noora RegexValidationRule.swift
[101/137] Compiling Noora Validator.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:32:13: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
30 |
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
   |             `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:33:20: warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
 6 | }
 7 |
 8 | class Spinner: Spinning {
   |       `- note: class 'Spinner' does not conform to the 'Sendable' protocol
 9 |     private static let frames = [
10 |         "⠋",
   :
31 |             // Schedule the timer in the current run loop
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
   |                    `- warning: capture of 'self' with non-sendable type 'Spinner' in a '@Sendable' closure
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:21: warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                     |- warning: capture of 'block' with non-sendable type '(String) -> Void' in a '@Sendable' closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:34:42: warning: reference to captured var 'index' in concurrently-executing code
32 |             self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
   |                                          `- warning: reference to captured var 'index' in concurrently-executing code
35 |                     index = (index + 1) % Spinner.frames.count
36 |                 } else {
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:21: warning: mutation of captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                     `- warning: mutation of captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Utilities/Spinner.swift:35:30: warning: reference to captured var 'index' in concurrently-executing code
33 |                 if self.isSpinning {
34 |                     block(Spinner.frames[index])
35 |                     index = (index + 1) % Spinner.frames.count
   |                              `- warning: reference to captured var 'index' in concurrently-executing code
36 |                 } else {
37 |                     self.timer?.invalidate()
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:768:17: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
     :
 766 |     }
 767 |
 768 |     public func progressBarStep<V>(
     |                 `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 769 |         message: String,
 770 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:732:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 723 |         showSpinner: Bool,
 724 |         renderer: Rendering,
 725 |         task: @escaping (@escaping @Sendable (String) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 726 |     ) async throws -> V {
 727 |         let progressStep = ProgressStep(
     :
 730 |             errorMessage: errorMessage,
 731 |             showSpinner: showSpinner,
 732 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 733 |             theme: theme,
 734 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:755:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 746 |         visibleLines: UInt,
 747 |         renderer: Rendering,
 748 |         task: @escaping (@escaping @Sendable (TerminalText) -> Void) async throws -> Void
     |         `- note: parameter 'task' is implicitly non-sendable
 749 |     ) async throws {
 750 |         try await CollapsibleStep(
     :
 753 |             errorMessage: errorMessage,
 754 |             visibleLines: visibleLines,
 755 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 756 |             theme: theme,
 757 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:779:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 771 |         errorMessage: String?,
 772 |         renderer: Rendering,
 773 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 774 |     ) async throws -> V {
 775 |         try await ProgressBarStep(
     :
 777 |             successMessage: successMessage,
 778 |             errorMessage: errorMessage,
 779 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 780 |             theme: theme,
 781 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1314:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1305 |     public func progressBarStep<V>(
1306 |         message: String,
1307 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1308 |     ) async throws -> V {
1309 |         try await progressBarStep(
     :
1312 |             errorMessage: nil,
1313 |             renderer: Renderer(),
1314 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1315 |         )
1316 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1329:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1320 |         successMessage: String?,
1321 |         errorMessage: String?,
1322 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1323 |     ) async throws -> V {
1324 |         try await progressBarStep(
     :
1327 |             errorMessage: errorMessage,
1328 |             renderer: Renderer(),
1329 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1330 |         )
1331 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:768:17: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
     :
 766 |     }
 767 |
 768 |     public func progressBarStep<V>(
     |                 `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 769 |         message: String,
 770 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:732:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 723 |         showSpinner: Bool,
 724 |         renderer: Rendering,
 725 |         task: @escaping (@escaping @Sendable (String) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 726 |     ) async throws -> V {
 727 |         let progressStep = ProgressStep(
     :
 730 |             errorMessage: errorMessage,
 731 |             showSpinner: showSpinner,
 732 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 733 |             theme: theme,
 734 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:755:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 746 |         visibleLines: UInt,
 747 |         renderer: Rendering,
 748 |         task: @escaping (@escaping @Sendable (TerminalText) -> Void) async throws -> Void
     |         `- note: parameter 'task' is implicitly non-sendable
 749 |     ) async throws {
 750 |         try await CollapsibleStep(
     :
 753 |             errorMessage: errorMessage,
 754 |             visibleLines: visibleLines,
 755 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 756 |             theme: theme,
 757 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:779:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 771 |         errorMessage: String?,
 772 |         renderer: Rendering,
 773 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 774 |     ) async throws -> V {
 775 |         try await ProgressBarStep(
     :
 777 |             successMessage: successMessage,
 778 |             errorMessage: errorMessage,
 779 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 780 |             theme: theme,
 781 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1314:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1305 |     public func progressBarStep<V>(
1306 |         message: String,
1307 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1308 |     ) async throws -> V {
1309 |         try await progressBarStep(
     :
1312 |             errorMessage: nil,
1313 |             renderer: Renderer(),
1314 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1315 |         )
1316 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1329:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1320 |         successMessage: String?,
1321 |         errorMessage: String?,
1322 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1323 |     ) async throws -> V {
1324 |         try await progressBarStep(
     :
1327 |             errorMessage: errorMessage,
1328 |             renderer: Renderer(),
1329 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1330 |         )
1331 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:768:17: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
     :
 766 |     }
 767 |
 768 |     public func progressBarStep<V>(
     |                 `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 769 |         message: String,
 770 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:732:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 723 |         showSpinner: Bool,
 724 |         renderer: Rendering,
 725 |         task: @escaping (@escaping @Sendable (String) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 726 |     ) async throws -> V {
 727 |         let progressStep = ProgressStep(
     :
 730 |             errorMessage: errorMessage,
 731 |             showSpinner: showSpinner,
 732 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 733 |             theme: theme,
 734 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:755:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 746 |         visibleLines: UInt,
 747 |         renderer: Rendering,
 748 |         task: @escaping (@escaping @Sendable (TerminalText) -> Void) async throws -> Void
     |         `- note: parameter 'task' is implicitly non-sendable
 749 |     ) async throws {
 750 |         try await CollapsibleStep(
     :
 753 |             errorMessage: errorMessage,
 754 |             visibleLines: visibleLines,
 755 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 756 |             theme: theme,
 757 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:779:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 771 |         errorMessage: String?,
 772 |         renderer: Rendering,
 773 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 774 |     ) async throws -> V {
 775 |         try await ProgressBarStep(
     :
 777 |             successMessage: successMessage,
 778 |             errorMessage: errorMessage,
 779 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 780 |             theme: theme,
 781 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1314:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1305 |     public func progressBarStep<V>(
1306 |         message: String,
1307 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1308 |     ) async throws -> V {
1309 |         try await progressBarStep(
     :
1312 |             errorMessage: nil,
1313 |             renderer: Renderer(),
1314 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1315 |         )
1316 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1329:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1320 |         successMessage: String?,
1321 |         errorMessage: String?,
1322 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1323 |     ) async throws -> V {
1324 |         try await progressBarStep(
     :
1327 |             errorMessage: errorMessage,
1328 |             renderer: Renderer(),
1329 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1330 |         )
1331 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:768:17: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
     :
 766 |     }
 767 |
 768 |     public func progressBarStep<V>(
     |                 `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
 769 |         message: String,
 770 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:732:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 723 |         showSpinner: Bool,
 724 |         renderer: Rendering,
 725 |         task: @escaping (@escaping @Sendable (String) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 726 |     ) async throws -> V {
 727 |         let progressStep = ProgressStep(
     :
 730 |             errorMessage: errorMessage,
 731 |             showSpinner: showSpinner,
 732 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 733 |             theme: theme,
 734 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:755:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 746 |         visibleLines: UInt,
 747 |         renderer: Rendering,
 748 |         task: @escaping (@escaping @Sendable (TerminalText) -> Void) async throws -> Void
     |         `- note: parameter 'task' is implicitly non-sendable
 749 |     ) async throws {
 750 |         try await CollapsibleStep(
     :
 753 |             errorMessage: errorMessage,
 754 |             visibleLines: visibleLines,
 755 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 756 |             theme: theme,
 757 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:779:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 771 |         errorMessage: String?,
 772 |         renderer: Rendering,
 773 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
 774 |     ) async throws -> V {
 775 |         try await ProgressBarStep(
     :
 777 |             successMessage: successMessage,
 778 |             errorMessage: errorMessage,
 779 |             task: task,
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
 780 |             theme: theme,
 781 |             terminal: terminal,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1314:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1305 |     public func progressBarStep<V>(
1306 |         message: String,
1307 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1308 |     ) async throws -> V {
1309 |         try await progressBarStep(
     :
1312 |             errorMessage: nil,
1313 |             renderer: Renderer(),
1314 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1315 |         )
1316 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:1329:19: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1320 |         successMessage: String?,
1321 |         errorMessage: String?,
1322 |         task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
     |         `- note: parameter 'task' is implicitly non-sendable
1323 |     ) async throws -> V {
1324 |         try await progressBarStep(
     :
1327 |             errorMessage: errorMessage,
1328 |             renderer: Renderer(),
1329 |             task: task
     |                   `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
1330 |         )
1331 |     }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:249:21: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
247 |         }
248 |
249 |         public func progressBarStep<V>(
    |                     `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
250 |             message: String,
251 |             successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:298:10: note: expected sendability to match requirement here
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:261:23: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
252 |             errorMessage: String?,
253 |             renderer: Rendering,
254 |             task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
    |             `- note: parameter 'task' is implicitly non-sendable
255 |         ) async throws -> V {
256 |             try await noora.progressBarStep(
    :
259 |                 errorMessage: errorMessage,
260 |                 renderer: renderer,
261 |                 task: task
    |                       `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
262 |             )
263 |         }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:249:21: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
247 |         }
248 |
249 |         public func progressBarStep<V>(
    |                     `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
250 |             message: String,
251 |             successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:298:10: note: expected sendability to match requirement here
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:261:23: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
252 |             errorMessage: String?,
253 |             renderer: Rendering,
254 |             task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
    |             `- note: parameter 'task' is implicitly non-sendable
255 |         ) async throws -> V {
256 |             try await noora.progressBarStep(
    :
259 |                 errorMessage: errorMessage,
260 |                 renderer: renderer,
261 |                 task: task
    |                       `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
262 |             )
263 |         }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:249:21: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
247 |         }
248 |
249 |         public func progressBarStep<V>(
    |                     `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
250 |             message: String,
251 |             successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:298:10: note: expected sendability to match requirement here
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:261:23: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
252 |             errorMessage: String?,
253 |             renderer: Rendering,
254 |             task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
    |             `- note: parameter 'task' is implicitly non-sendable
255 |         ) async throws -> V {
256 |             try await noora.progressBarStep(
    :
259 |                 errorMessage: errorMessage,
260 |                 renderer: renderer,
261 |                 task: task
    |                       `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
262 |             )
263 |         }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:249:21: warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
247 |         }
248 |
249 |         public func progressBarStep<V>(
    |                     `- warning: sendability of function types in instance method 'progressBarStep(message:successMessage:errorMessage:renderer:task:)' does not match requirement in protocol 'Noorable'; this is an error in the Swift 6 language mode
250 |             message: String,
251 |             successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Noora.swift:298:10: note: expected sendability to match requirement here
 296 |     /// The value should be between 0 and 1.
 297 |     /// message.
 298 |     func progressBarStep<V>(
     |          `- note: expected sendability to match requirement here
 299 |         message: String,
 300 |         successMessage: String?,
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/NooraMock.swift:261:23: warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
252 |             errorMessage: String?,
253 |             renderer: Rendering,
254 |             task: @escaping (@escaping @Sendable (Double) -> Void) async throws -> V
    |             `- note: parameter 'task' is implicitly non-sendable
255 |         ) async throws -> V {
256 |             try await noora.progressBarStep(
    :
259 |                 errorMessage: errorMessage,
260 |                 renderer: renderer,
261 |                 task: task
    |                       `- warning: passing non-sendable parameter 'task' to function expecting a @Sendable closure
262 |             )
263 |         }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:49:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 47 |
 48 |                 group.enter()
 49 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 50 |                     await consumeUpdates(state: state)
    |                                                 `- note: closure captures 'state' which is accessible to code in the current task
 51 |                     group.leave()
 52 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:55:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 53 |
 54 |                 group.enter()
 55 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 56 |                     listenForInput(state: state)
    |                                           `- note: closure captures 'state' which is accessible to code in the current task
 57 |                     group.leave()
 58 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:49:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 47 |
 48 |                 group.enter()
 49 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 50 |                     await consumeUpdates(state: state)
    |                                                 `- note: closure captures 'state' which is accessible to code in the current task
 51 |                     group.leave()
 52 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:55:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 53 |
 54 |                 group.enter()
 55 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 56 |                     listenForInput(state: state)
    |                                           `- note: closure captures 'state' which is accessible to code in the current task
 57 |                     group.leave()
 58 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:49:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 47 |
 48 |                 group.enter()
 49 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 50 |                     await consumeUpdates(state: state)
    |                                                 `- note: closure captures 'state' which is accessible to code in the current task
 51 |                     group.leave()
 52 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:55:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 53 |
 54 |                 group.enter()
 55 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 56 |                     listenForInput(state: state)
    |                                           `- note: closure captures 'state' which is accessible to code in the current task
 57 |                     group.leave()
 58 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:49:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 47 |
 48 |                 group.enter()
 49 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 50 |                     await consumeUpdates(state: state)
    |                                                 `- note: closure captures 'state' which is accessible to code in the current task
 51 |                     group.leave()
 52 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:55:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 53 |
 54 |                 group.enter()
 55 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 56 |                     listenForInput(state: state)
    |                                           `- note: closure captures 'state' which is accessible to code in the current task
 57 |                     group.leave()
 58 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:49:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 47 |
 48 |                 group.enter()
 49 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 50 |                     await consumeUpdates(state: state)
    |                                                 `- note: closure captures 'state' which is accessible to code in the current task
 51 |                     group.leave()
 52 |                 }
/Users/admin/builder/spi-builder-workspace/cli/Sources/Noora/Components/Table/UpdatingSelectableTable.swift:55:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 53 |
 54 |                 group.enter()
 55 |                 Task {
    |                      `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 56 |                     listenForInput(state: state)
    |                                           `- note: closure captures 'state' which is accessible to code in the current task
 57 |                     group.leave()
 58 |                 }
[123/137] Compiling Noora SingleChoicePrompt.swift
[128/137] Compiling Noora Alert.swift
[129/137] Compiling Noora CollapsibleStep.swift
[130/137] Compiling Noora MultipleChoicePrompt.swift
[131/137] Compiling Noora ProgressBarStep.swift
[132/137] Compiling Noora ProgressStep.swift
[132/137] Write Objects.LinkFileList
/Applications/Xcode-16.3.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: warning duplicate member name 'String+Rainbow.swift.o' from '/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Noora.build/String+Rainbow.swift.o(String+Rainbow.swift.o)' and '/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Rainbow.build/String+Rainbow.swift.o(String+Rainbow.swift.o)'
[133/137] Archiving libNoora.a
[135/149] Compiling examples_cli MultipleChoicePromptCommand.swift
[136/150] Compiling examples_cli ExamplesCLI.swift
[137/150] Compiling examples_cli FormatCommand.swift
[138/150] Compiling examples_cli InfoCommand.swift
[139/150] Compiling examples_cli SingleChoicePromptCommand.swift
[140/150] Emitting module examples_cli
[141/150] Compiling examples_cli ProgressStepCommand.swift
[142/150] Compiling examples_cli TextPromptCommand.swift
[143/150] Compiling examples_cli TableCommand.swift
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/TableCommand.swift:298:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
296 |
297 |         let updates = AsyncStream<TableData> { continuation in
298 |             Task.detached {
    |                           `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
299 |                 var rng = SystemRandomNumberGenerator()
300 |                 while !Task.isCancelled {
    :
327 |                     }
328 |
329 |                     continuation.yield(TableData(columns: columns, rows: jittered))
    |                                                           `- note: closure captures 'columns' which is accessible to code in the current task
330 |
331 |                     do {
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/TableCommand.swift:329:34: warning: sending value of non-Sendable type 'TableData' risks causing data races; this is an error in the Swift 6 language mode
327 |                     }
328 |
329 |                     continuation.yield(TableData(columns: columns, rows: jittered))
    |                                  |- warning: sending value of non-Sendable type 'TableData' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: Passing task-isolated value of non-Sendable type 'TableData' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
330 |
331 |                     do {
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/TableCommand.swift:393:33: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
391 |
392 |         let updates = AsyncStream<TableData> { continuation in
393 |             let producer = Task {
    |                                 `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
394 |                 var rng = rng
395 |                 var active = seedNetworks
    :
409 |                     let tableData = snapshot(active: active, rng: &rng)
410 |                     snapshotQueue.sync {
411 |                         latestData = tableData
    |                         `- note: closure captures reference to mutable var 'latestData' which is accessible to code in the current task
412 |                     }
413 |                     continuation.yield(tableData)
/Users/admin/builder/spi-builder-workspace/cli/Sources/examples-cli/Commands/TableCommand.swift:413:34: warning: sending 'tableData' risks causing data races; this is an error in the Swift 6 language mode
411 |                         latestData = tableData
412 |                     }
413 |                     continuation.yield(tableData)
    |                                  |- warning: sending 'tableData' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: task-isolated 'tableData' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
414 |
415 |                     do {
[144/150] Compiling examples_cli YesOrNoChoicePromptCommand.swift
[145/150] Compiling examples_cli AlertCommand.swift
[146/150] Compiling examples_cli CollapsibleStepCommand.swift
[147/150] Compiling examples_cli ProgressBarStepCommand.swift
[147/150] Write Objects.LinkFileList
[148/150] Linking examples-cli
[149/150] Applying examples-cli
Build complete! (21.27s)
Fetching https://github.com/tuist/path
Fetching https://github.com/onevcat/Rainbow
Fetching https://github.com/apple/swift-log from cache
Fetching https://github.com/apple/swift-argument-parser from cache
[1/1423] Fetching rainbow
[58/1812] Fetching rainbow, path
Fetched https://github.com/tuist/path from cache (0.94s)
Fetched https://github.com/onevcat/Rainbow from cache (0.94s)
Fetched https://github.com/apple/swift-log from cache (1.10s)
Fetched https://github.com/apple/swift-argument-parser from cache (1.38s)
Computing version for https://github.com/tuist/path
Computed https://github.com/tuist/path at 0.3.8 (4.42s)
Computing version for https://github.com/apple/swift-log
Computed https://github.com/apple/swift-log at 1.10.1 (0.50s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.7.0 (0.50s)
Computing version for https://github.com/onevcat/Rainbow
Computed https://github.com/onevcat/Rainbow at 4.2.1 (2.57s)
Creating working copy for https://github.com/onevcat/Rainbow
Working copy of https://github.com/onevcat/Rainbow resolved at 4.2.1
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.7.0
Creating working copy for https://github.com/tuist/path
Working copy of https://github.com/tuist/path resolved at 0.3.8
Creating working copy for https://github.com/apple/swift-log
Working copy of https://github.com/apple/swift-log resolved at 1.10.1
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rainbow",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.2.1",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/onevcat/Rainbow"
    },
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.7.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.10.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log"
    },
    {
      "identity" : "path",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.3.8",
            "upper_bound" : "0.4.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/tuist/path"
    }
  ],
  "manifest_display_name" : "Noora",
  "name" : "Noora",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Noora",
      "targets" : [
        "Noora"
      ],
      "type" : {
        "library" : [
          "static"
        ]
      }
    },
    {
      "name" : "examples-cli",
      "targets" : [
        "examples-cli"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "examples_cli",
      "module_type" : "SwiftTarget",
      "name" : "examples-cli",
      "path" : "cli/Sources/examples-cli",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "examples-cli"
      ],
      "sources" : [
        "Commands/AlertCommand.swift",
        "Commands/CollapsibleStepCommand.swift",
        "Commands/FormatCommand.swift",
        "Commands/InfoCommand.swift",
        "Commands/MultipleChoicePromptCommand.swift",
        "Commands/ProgressBarStepCommand.swift",
        "Commands/ProgressStepCommand.swift",
        "Commands/SingleChoicePromptCommand.swift",
        "Commands/TableCommand.swift",
        "Commands/TextPromptCommand.swift",
        "Commands/YesOrNoChoicePromptCommand.swift",
        "ExamplesCLI.swift"
      ],
      "target_dependencies" : [
        "Noora"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "NooraTests",
      "module_type" : "SwiftTarget",
      "name" : "NooraTests",
      "path" : "cli/Tests/NooraTests",
      "sources" : [
        "Components/CollapsibleStepTests.swift",
        "Components/CompletionTests.swift",
        "Components/MultipleChoicePromptTests.swift",
        "Components/NooraTests.swift",
        "Components/ProgressBarStepTests.swift",
        "Components/ProgressStepTests.swift",
        "Components/SingleChoicePromptTests.swift",
        "Components/TableTests.swift",
        "Components/TextPromptTests.swift",
        "Components/YesOrNoChoicePromptTests.swift",
        "Mocks/MockKeyStrokeListener.swift",
        "Mocks/MockRenderer.swift",
        "Mocks/MockSpinner.swift",
        "Mocks/MockStandardPipeline.swift",
        "Mocks/MockTerminal.swift",
        "Mocks/MockValidator.swift",
        "NooraTheme+Test.swift",
        "Utilities/DisplayWidthTests.swift",
        "Utilities/NooraMockTests.swift",
        "Utilities/SignalBehaviorTests.swift",
        "Utilities/TerminalTextTests.swift",
        "Validator/LengthValidationRuleTests.swift",
        "Validator/NonEmptyValidationRuleTests.swift",
        "Validator/RegexValidationRuleTests.swift",
        "Validator/ValidatorTests.swift"
      ],
      "target_dependencies" : [
        "Noora"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Noora",
      "module_type" : "SwiftTarget",
      "name" : "Noora",
      "path" : "cli/Sources/Noora",
      "product_dependencies" : [
        "Rainbow",
        "Logging",
        "Path"
      ],
      "product_memberships" : [
        "Noora",
        "examples-cli"
      ],
      "sources" : [
        "Components/Alert.swift",
        "Components/CollapsibleStep.swift",
        "Components/MultipleChoicePrompt.swift",
        "Components/ProgressBarStep.swift",
        "Components/ProgressStep.swift",
        "Components/SingleChoicePrompt.swift",
        "Components/Table/PaginatedTable.swift",
        "Components/Table/SelectableTable.swift",
        "Components/Table/Table.swift",
        "Components/Table/TableColumn.swift",
        "Components/Table/TableData.swift",
        "Components/Table/TableRenderer.swift",
        "Components/Table/TableStyle.swift",
        "Components/Table/UpdatingSelectableTable.swift",
        "Components/Table/UpdatingTable.swift",
        "Components/TextPrompt.swift",
        "Components/YesOrNoChoicePrompt.swift",
        "Content.swift",
        "DataStructures/Stack.swift",
        "Extensions/Character+isPrintable.swift",
        "Extensions/String+Rainbow.swift",
        "Extensions/String+ValidatableError.swift",
        "Noora.swift",
        "NooraError.swift",
        "NooraMock.swift",
        "StandardPipelineType.swift",
        "Theme.swift",
        "Utilities/KeyStrokeListener.swift",
        "Utilities/LockIsolated.swift",
        "Utilities/Renderer.swift",
        "Utilities/Spinner.swift",
        "Utilities/StandardPipelines.swift",
        "Utilities/Terminal.swift",
        "Utilities/TerminalText+DisplayWidth.swift",
        "Utilities/TerminalText.swift",
        "Validator/Core/ValidatableError.swift",
        "Validator/Core/ValidatableRule.swift",
        "Validator/Core/ValidationError.swift",
        "Validator/InputValidating.swift",
        "Validator/Rules/LengthValidationRule.swift",
        "Validator/Rules/NonEmptyValidationRule.swift",
        "Validator/Rules/RegexValidationRule.swift",
        "Validator/Validator.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8.1"
}
Done.