The Swift Package Index logo.Swift Package Index

Build Information

Successful build of swift-nostr-client, reference 0.2.0 (72df0b), with Swift 6.3 for macOS (SPM) on 14 Apr 2026 08:19:58 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/yysskk/swift-nostr-client.git
Reference: 0.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/yysskk/swift-nostr-client
 * tag               0.2.0      -> FETCH_HEAD
HEAD is now at 72df0b4 Merge pull request #10 from yysskk/fix/add-SubscriptionEvent
Cloned https://github.com/yysskk/swift-nostr-client.git
Revision (git rev-parse @):
72df0b4ec4978a5a87a384318e6b3224f8268e92
SUCCESS checkout https://github.com/yysskk/swift-nostr-client.git at 0.2.0
Fetching https://github.com/apple/swift-crypto.git
Fetching https://github.com/GigaBitcoin/secp256k1.swift
[1/17340] Fetching swift-crypto
[1042/27658] Fetching swift-crypto, secp256k1.swift
Fetched https://github.com/GigaBitcoin/secp256k1.swift from cache (3.20s)
Fetched https://github.com/apple/swift-crypto.git from cache (3.20s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 4.3.1 (6.59s)
Fetching https://github.com/apple/swift-asn1.git
[1/1796] Fetching swift-asn1
Fetched https://github.com/apple/swift-asn1.git from cache (0.93s)
Computing version for https://github.com/GigaBitcoin/secp256k1.swift
Computed https://github.com/GigaBitcoin/secp256k1.swift at 0.23.0 (1.67s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.6.0 (0.72s)
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 4.3.1
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.6.0
Creating working copy for https://github.com/GigaBitcoin/secp256k1.swift
Working copy of https://github.com/GigaBitcoin/secp256k1.swift resolved at 0.23.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "traits": [
    "default"
  ],
  "dependencies": [
    {
      "identity": "swift-nostr-client",
      "name": "swift-nostr-client",
      "url": "https://github.com/yysskk/swift-nostr-client.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-nostr-client",
      "traits": [
        "default"
      ],
      "dependencies": [
        {
          "identity": "secp256k1.swift",
          "name": "swift-secp256k1",
          "url": "https://github.com/GigaBitcoin/secp256k1.swift",
          "version": "0.23.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/secp256k1.swift",
          "traits": [
            "recovery",
            "musig",
            "schnorrsig",
            "ecdh"
          ],
          "dependencies": [
          ]
        },
        {
          "identity": "swift-crypto",
          "name": "swift-crypto",
          "url": "https://github.com/apple/swift-crypto.git",
          "version": "4.3.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-crypto",
          "traits": [
            "default"
          ],
          "dependencies": [
            {
              "identity": "swift-asn1",
              "name": "swift-asn1",
              "url": "https://github.com/apple/swift-asn1.git",
              "version": "1.6.0",
              "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-asn1",
              "traits": [
                "default"
              ],
              "dependencies": [
              ]
            }
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/yysskk/swift-nostr-client.git
[1/264] Fetching swift-nostr-client
Fetched https://github.com/yysskk/swift-nostr-client.git from cache (0.66s)
Fetching https://github.com/apple/swift-crypto.git from cache
Fetching https://github.com/GigaBitcoin/secp256k1.swift from cache
Fetched https://github.com/GigaBitcoin/secp256k1.swift from cache (0.60s)
Fetched https://github.com/apple/swift-crypto.git from cache (0.60s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 4.3.1 (0.67s)
Fetching https://github.com/apple/swift-asn1.git from cache
Fetched https://github.com/apple/swift-asn1.git from cache (0.42s)
Computing version for https://github.com/GigaBitcoin/secp256k1.swift
Computed https://github.com/GigaBitcoin/secp256k1.swift at 0.23.0 (0.48s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.6.0 (0.03s)
Creating working copy for https://github.com/yysskk/swift-nostr-client.git
Working copy of https://github.com/yysskk/swift-nostr-client.git resolved at 0.2.0 (72df0b4)
Creating working copy for https://github.com/GigaBitcoin/secp256k1.swift
Working copy of https://github.com/GigaBitcoin/secp256k1.swift resolved at 0.23.0
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 4.3.1
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.6.0
warning: '.resolve-product-dependencies': dependency 'swift-nostr-client' is not used by any target
Found 2 product dependencies
  - swift-secp256k1
  - swift-crypto
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/yysskk/swift-nostr-client.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin SharedSourcesPlugin
Building for debugging...
[1/10] Copying PrivacyInfo.xcprivacy
[1/10] Write sources
[5/10] Write swift-version--6988338F2F200930.txt
[6/10] Compiling Utility.c
[7/33] Compiling precomputed_ecmult_gen.c
[8/96] Compiling secp256k1.c
[9/96] Compiling precomputed_ecmult.c
[11/155] Compiling P256K Schnorr+Nonces.swift
[12/155] Compiling P256K Schnorr+PrivateKey.swift
[13/155] Compiling P256K Schnorr+PublicKey.swift
[14/155] Compiling P256K Schnorr+Signature.swift
[15/155] Compiling P256K Schnorr+Tweak.swift
[16/155] Compiling P256K Schnorr+XonlyKey.swift
[17/161] Compiling P256K Schnorr.swift
[18/161] Compiling P256K SecureBytes.swift
[19/161] Compiling P256K Signature.swift
[20/161] Compiling P256K SubjectPublicKeyInfo.swift
[21/161] Compiling P256K UInt256+Arithmetic.swift
[22/161] Compiling P256K UInt256+FixedWidthInteger.swift
[23/161] Compiling P256K RNG_boring.swift
[24/161] Compiling P256K Recovery+Signature.swift
[25/161] Compiling P256K Recovery.swift
[26/161] Compiling P256K SEC1PrivateKey.swift
[27/161] Compiling P256K SHA256.swift
[28/161] Compiling P256K SafeCompare.swift
[29/161] Compiling P256K Placeholder.swift
[30/161] Compiling P256K ASN1.swift
[31/161] Compiling P256K ASN1Any.swift
[32/161] Compiling P256K ASN1BitString.swift
[33/161] Compiling P256K ASN1Boolean.swift
[34/161] Compiling P256K ASN1Identifier.swift
[35/161] Compiling P256K ASN1Integer.swift
[36/161] Emitting module P256K
[37/161] Compiling P256K ECDSA+XonlyKey.swift
[38/161] Compiling P256K ECDSA.swift
[39/161] Compiling P256K ECDSASignature.swift
[40/161] Compiling P256K EdDSA.swift
[41/161] Compiling P256K Errors.swift
[42/161] Compiling P256K GeneralizedTime.swift
[43/161] Compiling P256K HashDigest.swift
[44/161] Compiling P256K DH.swift
[45/161] Compiling P256K Digest.swift
[46/161] Compiling P256K ECDH.swift
[47/161] Compiling P256K ECDSA+PrivateKey.swift
[48/161] Compiling P256K ECDSA+PublicKey.swift
[49/161] Compiling P256K ECDSA+Signature.swift
[50/161] Compiling P256K ECDSA+Tweak.swift
[51/161] Compiling P256K MuSig+Aggregate.swift
[52/161] Compiling P256K MuSig+Nonces.swift
[53/161] Compiling P256K MuSig+Signing.swift
[54/161] Compiling P256K MuSig+Tweak.swift
[55/161] Compiling P256K MuSig.swift
[56/161] Compiling P256K ObjectIdentifier.swift
[57/161] Compiling Crypto ECDSA_boring.swift
[58/161] Compiling Crypto EdDSA_boring.swift
[59/161] Compiling Crypto MLDSA_boring.swift
[60/161] Compiling Crypto MLDSA_wrapper.swift
[61/161] Compiling Crypto ECDSA.swift
[62/161] Compiling Crypto Ed25519.swift
[63/161] Compiling Crypto MLDSA.swift
[64/161] Compiling Crypto Signature.swift
[65/161] Compiling Crypto CryptoKitErrors_boring.swift
[66/161] Compiling Crypto PKCS8PrivateKey.swift
[67/161] Compiling Crypto SEC1PrivateKey.swift
[68/161] Compiling Crypto SubjectPublicKeyInfo.swift
[69/161] Compiling Crypto CryptoError_boring.swift
[70/161] Compiling Crypto CryptoKitErrors.swift
[71/161] Compiling Crypto Digest_boring.swift
[72/161] Compiling Crypto Digest.swift
[73/161] Compiling Crypto Digests.swift
[74/161] Compiling Crypto HashFunctions.swift
[75/161] Compiling Crypto HashFunctions_SHA2.swift
[87/170] Compiling P256K UInt256+Modular.swift
[88/170] Compiling P256K UInt256+Representation.swift
[89/170] Compiling P256K UInt256.swift
[90/170] Compiling P256K Utility.swift
[91/170] Compiling P256K XonlyKeyImplementation.swift
[92/170] Compiling P256K Zeroization.swift
[93/170] Compiling Crypto ECDSASignature.swift
[94/170] Compiling Crypto PEMDocument.swift
[105/170] Compiling P256K Context.swift
[106/170] Compiling P256K CryptoKitErrors.swift
[107/170] Compiling P256K P256K.swift
[108/170] Compiling P256K PEMDocument.swift
[109/170] Compiling P256K PKCS8PrivateKey.swift
[110/170] Compiling P256K PrettyBytes.swift
[111/170] Compiling P256K PrivateKeyImplementation.swift
[112/170] Compiling P256K PublicKeyImplementation.swift
[133/170] Emitting module Crypto
[138/170] Compiling P256K ASN1Null.swift
[139/170] Compiling P256K ASN1OctetString.swift
[140/170] Compiling P256K ASN1Strings.swift
[141/170] Compiling P256K ArraySliceBigint.swift
[142/170] Compiling P256K Combine.swift
[162/170] Compiling Crypto Optional+withUnsafeBytes_boring.swift
[163/170] Compiling Crypto RNG_boring.swift
[164/170] Compiling Crypto SafeCompare_boring.swift
[165/170] Compiling Crypto Zeroization_boring.swift
[166/170] Compiling Crypto PrettyBytes.swift
[167/170] Compiling Crypto SafeCompare.swift
[168/170] Compiling Crypto SecureBytes.swift
[169/170] Compiling Crypto Zeroization.swift
[170/170] Compiling Crypto resource_bundle_accessor.swift
[171/198] Emitting module NostrClient
[172/200] Compiling NostrClient RelayPoolConfig.swift
[173/200] Compiling NostrClient RelaySubscriptionMessage.swift
[174/200] Compiling NostrClient RelayConnectionConfig.swift
[175/200] Compiling NostrClient RelayConnectionState.swift
[176/200] Compiling NostrClient RelayPool.swift
[177/200] Compiling NostrClient EOSETracker.swift
[178/200] Compiling NostrClient Contact.swift
[179/200] Compiling NostrClient DirectMessage.swift
[180/200] Compiling NostrClient GiftWrap.swift
[181/200] Compiling NostrClient KeyDerivation.swift
[182/200] Compiling NostrClient KeyPair.swift
[183/200] Compiling NostrClient Mnemonic.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Crypto/SealedMessage.swift:164:28: warning: no calls to throwing functions occur within 'try' expression
162 |         // The sharedSecret in compressed format is: version (1 byte) + x-coordinate (32 bytes)
163 |         // NIP-44 needs only the x-coordinate, so skip the version byte
164 |         let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: publicKey, format: .compressed)
    |                            `- warning: no calls to throwing functions occur within 'try' expression
165 |         let sharedX = sharedSecret.withUnsafeBytes { bytes in
166 |             Data(bytes.dropFirst())
[184/200] Compiling NostrClient SealedMessage.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Crypto/SealedMessage.swift:164:28: warning: no calls to throwing functions occur within 'try' expression
162 |         // The sharedSecret in compressed format is: version (1 byte) + x-coordinate (32 bytes)
163 |         // NIP-44 needs only the x-coordinate, so skip the version byte
164 |         let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: publicKey, format: .compressed)
    |                            `- warning: no calls to throwing functions occur within 'try' expression
165 |         let sharedX = sharedSecret.withUnsafeBytes { bytes in
166 |             Data(bytes.dropFirst())
[185/200] Compiling NostrClient SecureRandom.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Crypto/SealedMessage.swift:164:28: warning: no calls to throwing functions occur within 'try' expression
162 |         // The sharedSecret in compressed format is: version (1 byte) + x-coordinate (32 bytes)
163 |         // NIP-44 needs only the x-coordinate, so skip the version byte
164 |         let sharedSecret = try privateKey.sharedSecretFromKeyAgreement(with: publicKey, format: .compressed)
    |                            `- warning: no calls to throwing functions occur within 'try' expression
165 |         let sharedX = sharedSecret.withUnsafeBytes { bytes in
166 |             Data(bytes.dropFirst())
[186/200] Compiling NostrClient OpenTimestamps.swift
[187/200] Compiling NostrClient RelayMessage.swift
[188/200] Compiling NostrClient SubscriptionEvent.swift
[189/200] Compiling NostrClient NostrClient+Exports.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:200:37: warning: no 'async' operations occur within 'await' expression
198 |                     try await self.send(.event(event))
199 |                 } catch {
200 |                     if let waiter = await self.removePublishWaiter(eventId: event.id) {
    |                                     `- warning: no 'async' operations occur within 'await' expression
201 |                         waiter.resume(throwing: error)
202 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:208:33: warning: no 'async' operations occur within 'await' expression
206 |             Task {
207 |                 try? await Task.sleep(for: .seconds(self.config.operationTimeout))
208 |                 if let waiter = await self.removePublishWaiter(eventId: event.id) {
    |                                 `- warning: no 'async' operations occur within 'await' expression
209 |                     waiter.resume(throwing: NostrError.timeout)
210 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:325:49: warning: no 'async' operations occur within 'await' expression
323 |                         if let relayMessage = try? RelayMessage.parse(text) {
324 |                             if case .ok(let eventId, let accepted, let message) = relayMessage {
325 |                                 if let waiter = await self.removePublishWaiter(eventId: eventId) {
    |                                                 `- warning: no 'async' operations occur within 'await' expression
326 |                                     if accepted {
327 |                                         waiter.resume(returning: ())
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:333:29: warning: no 'async' operations occur within 'await' expression
331 |                                 }
332 |                             }
333 |                             await self.yieldToMessageContinuations(relayMessage)
    |                             `- warning: no 'async' operations occur within 'await' expression
334 |                         }
335 |
[190/200] Compiling NostrClient NostrClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:200:37: warning: no 'async' operations occur within 'await' expression
198 |                     try await self.send(.event(event))
199 |                 } catch {
200 |                     if let waiter = await self.removePublishWaiter(eventId: event.id) {
    |                                     `- warning: no 'async' operations occur within 'await' expression
201 |                         waiter.resume(throwing: error)
202 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:208:33: warning: no 'async' operations occur within 'await' expression
206 |             Task {
207 |                 try? await Task.sleep(for: .seconds(self.config.operationTimeout))
208 |                 if let waiter = await self.removePublishWaiter(eventId: event.id) {
    |                                 `- warning: no 'async' operations occur within 'await' expression
209 |                     waiter.resume(throwing: NostrError.timeout)
210 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:325:49: warning: no 'async' operations occur within 'await' expression
323 |                         if let relayMessage = try? RelayMessage.parse(text) {
324 |                             if case .ok(let eventId, let accepted, let message) = relayMessage {
325 |                                 if let waiter = await self.removePublishWaiter(eventId: eventId) {
    |                                                 `- warning: no 'async' operations occur within 'await' expression
326 |                                     if accepted {
327 |                                         waiter.resume(returning: ())
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:333:29: warning: no 'async' operations occur within 'await' expression
331 |                                 }
332 |                             }
333 |                             await self.yieldToMessageContinuations(relayMessage)
    |                             `- warning: no 'async' operations occur within 'await' expression
334 |                         }
335 |
[191/200] Compiling NostrClient RelayConnection.swift
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:200:37: warning: no 'async' operations occur within 'await' expression
198 |                     try await self.send(.event(event))
199 |                 } catch {
200 |                     if let waiter = await self.removePublishWaiter(eventId: event.id) {
    |                                     `- warning: no 'async' operations occur within 'await' expression
201 |                         waiter.resume(throwing: error)
202 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:208:33: warning: no 'async' operations occur within 'await' expression
206 |             Task {
207 |                 try? await Task.sleep(for: .seconds(self.config.operationTimeout))
208 |                 if let waiter = await self.removePublishWaiter(eventId: event.id) {
    |                                 `- warning: no 'async' operations occur within 'await' expression
209 |                     waiter.resume(throwing: NostrError.timeout)
210 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:325:49: warning: no 'async' operations occur within 'await' expression
323 |                         if let relayMessage = try? RelayMessage.parse(text) {
324 |                             if case .ok(let eventId, let accepted, let message) = relayMessage {
325 |                                 if let waiter = await self.removePublishWaiter(eventId: eventId) {
    |                                                 `- warning: no 'async' operations occur within 'await' expression
326 |                                     if accepted {
327 |                                         waiter.resume(returning: ())
/Users/admin/builder/spi-builder-workspace/Sources/NostrClient/Relay/RelayConnection.swift:333:29: warning: no 'async' operations occur within 'await' expression
331 |                                 }
332 |                             }
333 |                             await self.yieldToMessageContinuations(relayMessage)
    |                             `- warning: no 'async' operations occur within 'await' expression
334 |                         }
335 |
[192/200] Compiling NostrClient DirectMessageBuilder.swift
[193/200] Compiling NostrClient DirectMessageParser.swift
[194/200] Compiling NostrClient Event.swift
[195/200] Compiling NostrClient Filter.swift
[196/200] Compiling NostrClient InternetIdentifier.swift
[197/200] Compiling NostrClient NostrError.swift
[198/200] Compiling NostrClient BIP39WordList.swift
[199/200] Compiling NostrClient Bech32.swift
[200/200] Compiling NostrClient EventSigner.swift
Build complete! (17.53s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "secp256k1.swift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.18.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/GigaBitcoin/secp256k1.swift"
    },
    {
      "identity" : "swift-crypto",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.2.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-crypto.git"
    }
  ],
  "manifest_display_name" : "swift-nostr-client",
  "name" : "swift-nostr-client",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "tvos",
      "version" : "17.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "NostrClient",
      "targets" : [
        "NostrClient"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "NostrClientTests",
      "module_type" : "SwiftTarget",
      "name" : "NostrClientTests",
      "path" : "Tests/NostrClientTests",
      "sources" : [
        "BIP39WordListTests.swift",
        "Bech32Tests.swift",
        "ContactTests.swift",
        "EventTests.swift",
        "FilterTests.swift",
        "InternetIdentifierTests.swift",
        "KeyPairTests.swift",
        "MnemonicTests.swift",
        "NIP17Tests.swift",
        "NostrClientFetchTests.swift",
        "OpenTimestampsTests.swift",
        "RelayMessageTests.swift"
      ],
      "target_dependencies" : [
        "NostrClient"
      ],
      "type" : "test"
    },
    {
      "c99name" : "NostrClient",
      "module_type" : "SwiftTarget",
      "name" : "NostrClient",
      "path" : "Sources/NostrClient",
      "product_dependencies" : [
        "P256K",
        "Crypto"
      ],
      "product_memberships" : [
        "NostrClient"
      ],
      "sources" : [
        "Crypto/BIP39WordList.swift",
        "Crypto/Bech32.swift",
        "Crypto/EventSigner.swift",
        "Crypto/GiftWrap.swift",
        "Crypto/KeyDerivation.swift",
        "Crypto/KeyPair.swift",
        "Crypto/Mnemonic.swift",
        "Crypto/SealedMessage.swift",
        "Crypto/SecureRandom.swift",
        "EOSETracker.swift",
        "Models/Contact.swift",
        "Models/DirectMessage.swift",
        "Models/DirectMessageBuilder.swift",
        "Models/DirectMessageParser.swift",
        "Models/Event.swift",
        "Models/Filter.swift",
        "Models/InternetIdentifier.swift",
        "Models/NostrError.swift",
        "Models/OpenTimestamps.swift",
        "Models/RelayMessage.swift",
        "Models/SubscriptionEvent.swift",
        "NostrClient+Exports.swift",
        "NostrClient.swift",
        "Relay/RelayConnection.swift",
        "Relay/RelayConnectionConfig.swift",
        "Relay/RelayConnectionState.swift",
        "Relay/RelayPool.swift",
        "Relay/RelayPoolConfig.swift",
        "Relay/RelaySubscriptionMessage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.2"
}
Done.