@blinklabs/dingo 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/.dockerignore +5 -0
  2. package/.github/CODEOWNERS +5 -0
  3. package/.github/assets/dingo-ate-my-blockchain.png +0 -0
  4. package/.github/assets/dingo-illustration.png +0 -0
  5. package/.github/assets/dingo-logo-with-text-horizontal.png +0 -0
  6. package/.github/assets/dingo-logo-with-text.png +0 -0
  7. package/.github/dependabot.yml +19 -0
  8. package/.github/dingo-20241210.png +0 -0
  9. package/.github/dingo.md +56 -0
  10. package/.github/workflows/ci-docker.yml +36 -0
  11. package/.github/workflows/conventional-commits.yml +17 -0
  12. package/.github/workflows/go-test.yml +29 -0
  13. package/.github/workflows/golangci-lint.yml +23 -0
  14. package/.github/workflows/publish.yml +207 -0
  15. package/.golangci.yml +71 -0
  16. package/Dockerfile +25 -0
  17. package/LICENSE +201 -0
  18. package/Makefile +53 -0
  19. package/README.md +150 -0
  20. package/blockfetch.go +144 -0
  21. package/chain/chain.go +504 -0
  22. package/chain/chain_test.go +468 -0
  23. package/chain/errors.go +80 -0
  24. package/chain/event.go +33 -0
  25. package/chain/iter.go +64 -0
  26. package/chainsync/chainsync.go +97 -0
  27. package/chainsync.go +223 -0
  28. package/cmd/dingo/load.go +52 -0
  29. package/cmd/dingo/main.go +118 -0
  30. package/cmd/dingo/serve.go +49 -0
  31. package/config/cardano/node.go +192 -0
  32. package/config/cardano/node_test.go +85 -0
  33. package/config/cardano/preview/README.md +4 -0
  34. package/config/cardano/preview/alonzo-genesis.json +196 -0
  35. package/config/cardano/preview/byron-genesis.json +117 -0
  36. package/config/cardano/preview/config.json +114 -0
  37. package/config/cardano/preview/conway-genesis.json +297 -0
  38. package/config/cardano/preview/shelley-genesis.json +68 -0
  39. package/config.go +245 -0
  40. package/connmanager/connection_manager.go +105 -0
  41. package/connmanager/connection_manager_test.go +185 -0
  42. package/connmanager/event.go +37 -0
  43. package/connmanager/listener.go +140 -0
  44. package/connmanager/outbound.go +93 -0
  45. package/connmanager/socket.go +55 -0
  46. package/connmanager/unix.go +78 -0
  47. package/custom-p2p-topology.json +24 -0
  48. package/custom-p2p-topology.json.backup +24 -0
  49. package/custom-p2p-topology.json.mainnet +37 -0
  50. package/database/account.go +138 -0
  51. package/database/block.go +362 -0
  52. package/database/certs.go +53 -0
  53. package/database/commit_timestamp.go +77 -0
  54. package/database/database.go +118 -0
  55. package/database/database_test.go +62 -0
  56. package/database/drep.go +27 -0
  57. package/database/epoch.go +121 -0
  58. package/database/immutable/chunk.go +182 -0
  59. package/database/immutable/immutable.go +350 -0
  60. package/database/immutable/immutable_test.go +59 -0
  61. package/database/immutable/primary.go +106 -0
  62. package/database/immutable/secondary.go +103 -0
  63. package/database/immutable/testdata/08893.chunk +0 -0
  64. package/database/immutable/testdata/08893.primary +0 -0
  65. package/database/immutable/testdata/08893.secondary +0 -0
  66. package/database/immutable/testdata/08894.chunk +0 -0
  67. package/database/immutable/testdata/08894.primary +0 -0
  68. package/database/immutable/testdata/08894.secondary +0 -0
  69. package/database/immutable/testdata/README.md +4 -0
  70. package/database/plugin/blob/badger/commit_timestamp.go +50 -0
  71. package/database/plugin/blob/badger/database.go +152 -0
  72. package/database/plugin/blob/badger/logger.go +63 -0
  73. package/database/plugin/blob/badger/metrics.go +98 -0
  74. package/database/plugin/blob/blob.go +19 -0
  75. package/database/plugin/blob/store.go +40 -0
  76. package/database/plugin/log.go +27 -0
  77. package/database/plugin/metadata/metadata.go +19 -0
  78. package/database/plugin/metadata/sqlite/account.go +224 -0
  79. package/database/plugin/metadata/sqlite/certs.go +58 -0
  80. package/database/plugin/metadata/sqlite/commit_timestamp.go +68 -0
  81. package/database/plugin/metadata/sqlite/database.go +218 -0
  82. package/database/plugin/metadata/sqlite/epoch.go +120 -0
  83. package/database/plugin/metadata/sqlite/models/account.go +81 -0
  84. package/database/plugin/metadata/sqlite/models/auth_committee_hot.go +26 -0
  85. package/database/plugin/metadata/sqlite/models/deregistration_drep.go +26 -0
  86. package/database/plugin/metadata/sqlite/models/drep.go +27 -0
  87. package/database/plugin/metadata/sqlite/models/epoch.go +31 -0
  88. package/database/plugin/metadata/sqlite/models/models.go +45 -0
  89. package/database/plugin/metadata/sqlite/models/pool.go +97 -0
  90. package/database/plugin/metadata/sqlite/models/pparam_update.go +27 -0
  91. package/database/plugin/metadata/sqlite/models/pparams.go +27 -0
  92. package/database/plugin/metadata/sqlite/models/registration_drep.go +28 -0
  93. package/database/plugin/metadata/sqlite/models/resign_committee_cold.go +27 -0
  94. package/database/plugin/metadata/sqlite/models/stake_registration_delegation.go +27 -0
  95. package/database/plugin/metadata/sqlite/models/stake_vote_delegation.go +27 -0
  96. package/database/plugin/metadata/sqlite/models/stake_vote_registration_delegation.go +27 -0
  97. package/database/plugin/metadata/sqlite/models/tip.go +26 -0
  98. package/database/plugin/metadata/sqlite/models/update_drep.go +27 -0
  99. package/database/plugin/metadata/sqlite/models/utxo.go +30 -0
  100. package/database/plugin/metadata/sqlite/models/vote_delegation.go +26 -0
  101. package/database/plugin/metadata/sqlite/models/vote_registration_delegation.go +26 -0
  102. package/database/plugin/metadata/sqlite/pool.go +240 -0
  103. package/database/plugin/metadata/sqlite/pparams.go +110 -0
  104. package/database/plugin/metadata/sqlite/tip.go +83 -0
  105. package/database/plugin/metadata/sqlite/utxo.go +292 -0
  106. package/database/plugin/metadata/store.go +168 -0
  107. package/database/plugin/option.go +190 -0
  108. package/database/plugin/plugin.go +20 -0
  109. package/database/plugin/register.go +118 -0
  110. package/database/pparams.go +145 -0
  111. package/database/tip.go +45 -0
  112. package/database/txn.go +147 -0
  113. package/database/types/types.go +74 -0
  114. package/database/types/types_test.go +83 -0
  115. package/database/utxo.go +263 -0
  116. package/dist/artifacts.json +1 -0
  117. package/dist/checksums.txt +22 -0
  118. package/dist/config.yaml +253 -0
  119. package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz +0 -0
  120. package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz.sbom.json +1 -0
  121. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz +0 -0
  122. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz.sbom.json +1 -0
  123. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz +0 -0
  124. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz.sbom.json +1 -0
  125. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk +0 -0
  126. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk.sbom.json +1 -0
  127. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb +0 -0
  128. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb.sbom.json +1 -0
  129. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm +0 -0
  130. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm.sbom.json +1 -0
  131. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk +0 -0
  132. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk.sbom.json +1 -0
  133. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb +0 -0
  134. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb.sbom.json +1 -0
  135. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm +0 -0
  136. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm.sbom.json +1 -0
  137. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz +0 -0
  138. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz.sbom.json +1 -0
  139. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz +0 -0
  140. package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz.sbom.json +1 -0
  141. package/dist/dingo_darwin_amd64_v1/dingo +0 -0
  142. package/dist/dingo_darwin_arm64_v8.0/dingo +0 -0
  143. package/dist/dingo_linux_amd64_v1/dingo +0 -0
  144. package/dist/dingo_linux_arm64_v8.0/dingo +0 -0
  145. package/dist/homebrew/dingo.rb +51 -0
  146. package/dist/metadata.json +1 -0
  147. package/event/event.go +141 -0
  148. package/event/event_test.go +115 -0
  149. package/event/metrics.go +44 -0
  150. package/go.mod +98 -0
  151. package/go.sum +358 -0
  152. package/internal/config/config.go +145 -0
  153. package/internal/config/config_test.go +118 -0
  154. package/internal/node/load.go +149 -0
  155. package/internal/node/node.go +176 -0
  156. package/internal/version/version.go +33 -0
  157. package/ledger/certs.go +113 -0
  158. package/ledger/chainsync.go +578 -0
  159. package/ledger/eras/allegra.go +154 -0
  160. package/ledger/eras/alonzo.go +156 -0
  161. package/ledger/eras/babbage.go +154 -0
  162. package/ledger/eras/byron.go +42 -0
  163. package/ledger/eras/conway.go +158 -0
  164. package/ledger/eras/eras.go +44 -0
  165. package/ledger/eras/mary.go +154 -0
  166. package/ledger/eras/shelley.go +164 -0
  167. package/ledger/error.go +19 -0
  168. package/ledger/event.go +50 -0
  169. package/ledger/metrics.go +53 -0
  170. package/ledger/queries.go +260 -0
  171. package/ledger/slot.go +127 -0
  172. package/ledger/slot_test.go +147 -0
  173. package/ledger/state.go +726 -0
  174. package/ledger/view.go +73 -0
  175. package/localstatequery.go +50 -0
  176. package/localtxmonitor.go +44 -0
  177. package/localtxsubmission.go +52 -0
  178. package/mempool/consumer.go +98 -0
  179. package/mempool/mempool.go +322 -0
  180. package/node.go +320 -0
  181. package/package.json +33 -0
  182. package/peergov/event.go +27 -0
  183. package/peergov/peer.go +67 -0
  184. package/peergov/peergov.go +290 -0
  185. package/peersharing.go +70 -0
  186. package/preview-local-topology.json +23 -0
  187. package/topology/topology.go +69 -0
  188. package/topology/topology_test.go +179 -0
  189. package/tracing.go +65 -0
  190. package/txsubmission.go +233 -0
  191. package/utxorpc/query.go +311 -0
  192. package/utxorpc/submit.go +395 -0
  193. package/utxorpc/sync.go +276 -0
  194. package/utxorpc/utxorpc.go +166 -0
  195. package/utxorpc/watch.go +310 -0
@@ -0,0 +1 @@
1
+ {"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz","documentNamespace":"https://anchore.com/syft/file/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz-03766ebe-d0f9-4c45-82c2-895b76d6ae67","creationInfo":{"licenseListVersion":"3.25","creators":["Organization: Anchore, Inc","Tool: syft-1.22.0"],"created":"2025-04-17T21:08:47Z"},"packages":[{"name":"connectrpc.com/connect","SPDXID":"SPDXRef-Package-go-module-connectrpc.com-connect-5f0512d8e528f27c","versionInfo":"v1.18.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"3c083b0a34801afb1c69fe9864a51e7e3a2287967fa98932693ac15bcc6f60fc"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/connectrpc.com/connect@v1.18.1"}]},{"name":"connectrpc.com/grpchealth","SPDXID":"SPDXRef-Package-go-module-connectrpc.com-grpchealth-17d885c528c9913f","versionInfo":"v1.3.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"140dce23002fb8ca244085d0ad8e4b6c8cbc21e9dfb64b133ff946e0f6d837e1"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/connectrpc.com/grpchealth@v1.3.0"}]},{"name":"connectrpc.com/grpcreflect","SPDXID":"SPDXRef-Package-go-module-connectrpc.com-grpcreflect-f3b853e3ad59aa67","versionInfo":"v1.3.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"63857e0027fcfef39bd5739cdb9d50ba7ee3301ef980250dc3a965bc1f5cb177"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/connectrpc.com/grpcreflect@v1.3.0"}]},{"name":"filippo.io/edwards25519","SPDXID":"SPDXRef-Package-go-module-filippo.io-edwards25519-bcaa61387d7dfd82","versionInfo":"v1.1.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"14d7f8b72c110b51e616e296e71a295a98a01a324a889495d02aa8d1c2560da0"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/filippo.io/edwards25519@v1.1.0"}]},{"name":"github.com/beorn7/perks","SPDXID":"SPDXRef-Package-go-module-github.com-beorn7-perks-8d1fb8953d25de79","versionInfo":"v1.0.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"5656ca2a735f57c6c9cdeaa86b870e2aa3ba6d8af75a0299c4ef19d7afa1b0e3"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:beorn7:perks:v1.0.1:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/beorn7/perks@v1.0.1"}]},{"name":"github.com/blinklabs-io/dingo","SPDXID":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","versionInfo":"v0.5.1-0.20250417170754-d9431e4e116e+dirty","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:blinklabs-io:dingo:v0.5.1-0.20250417170754-d9431e4e116e\\+dirty:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:blinklabs_io:dingo:v0.5.1-0.20250417170754-d9431e4e116e\\+dirty:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:blinklabs:dingo:v0.5.1-0.20250417170754-d9431e4e116e\\+dirty:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/blinklabs-io/dingo@v0.5.1-0.20250417170754-d9431e4e116e%2Bdirty"}]},{"name":"github.com/blinklabs-io/gouroboros","SPDXID":"SPDXRef-Package-go-module-github.com-blinklabs-io-gouroboros-f213aae7bcea7b6b","versionInfo":"v0.117.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"6568b7ccde61b5fa24f43edd3263137c217c3e0d9784e4dd412ad83e04993656"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:blinklabs-io:gouroboros:v0.117.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:blinklabs_io:gouroboros:v0.117.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:blinklabs:gouroboros:v0.117.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/blinklabs-io/gouroboros@v0.117.0"}]},{"name":"github.com/btcsuite/btcd/btcutil","SPDXID":"SPDXRef-Package-go-module-github.com-btcsuite-btcd-btcutil-667e262f4e372ed6","versionInfo":"v1.1.6","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"cc52f6f9cdcb6fd80482a28dce8c0a50f40d6fc8d5eefe4e6a8762fc060577a7"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:btcsuite:btcd\\/btcutil:v1.1.6:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/btcsuite/btcd@v1.1.6#btcutil"}]},{"name":"github.com/cenkalti/backoff/v4","SPDXID":"SPDXRef-Package-go-module-github.com-cenkalti-backoff-v4-c56da740f880e1bc","versionInfo":"v4.3.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"332449fd4757bad0304804feb37c0d77b31f4c8732ef5550b9e52e14adf8dcbf"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:cenkalti:backoff\\/v4:v4.3.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/cenkalti/backoff@v4.3.0#v4"}]},{"name":"github.com/cespare/xxhash/v2","SPDXID":"SPDXRef-Package-go-module-github.com-cespare-xxhash-v2-17c603a49b0e288e","versionInfo":"v2.3.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"50bf35e7153d4aab059626f3ba08338d786883b6cbea85fd05b3599cbd9416fb"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:cespare:xxhash\\/v2:v2.3.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/cespare/xxhash@v2.3.0#v2"}]},{"name":"github.com/dgraph-io/badger/v4","SPDXID":"SPDXRef-Package-go-module-github.com-dgraph-io-badger-v4-d6ac795243454d49","versionInfo":"v4.7.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"43e27c1c0a58018ed43292fc77da30aa207ea1dcc4734ce7fdaa8e0fd8e173a6"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dgraph-io:badger\\/v4:v4.7.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dgraph_io:badger\\/v4:v4.7.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dgraph:badger\\/v4:v4.7.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/dgraph-io/badger@v4.7.0#v4"}]},{"name":"github.com/dgraph-io/ristretto/v2","SPDXID":"SPDXRef-Package-go-module-github.com-dgraph-io-ristretto-v2-8dcd38f94ff5f8ee","versionInfo":"v2.2.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"6e46375f325c5e832e10b57c17ebd2f24ccd82273040501a18834010975618e3"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dgraph-io:ristretto\\/v2:v2.2.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dgraph_io:ristretto\\/v2:v2.2.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dgraph:ristretto\\/v2:v2.2.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/dgraph-io/ristretto@v2.2.0#v2"}]},{"name":"github.com/dustin/go-humanize","SPDXID":"SPDXRef-Package-go-module-github.com-dustin-go-humanize-b23ca737940d26a7","versionInfo":"v1.0.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"1b392163b4f954d8449301f43d52608f3f9f5f5ae106b47ba514f79839297826"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dustin:go-humanize:v1.0.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:dustin:go_humanize:v1.0.1:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/dustin/go-humanize@v1.0.1"}]},{"name":"github.com/fxamacker/cbor/v2","SPDXID":"SPDXRef-Package-go-module-github.com-fxamacker-cbor-v2-9f164b0713263b26","versionInfo":"v2.8.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"7c5b541975335cf1d32147677b9fb3ccc3d37df7e5dd10f9a989e4638d2fb715"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:fxamacker:cbor\\/v2:v2.8.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/fxamacker/cbor@v2.8.0#v2"}]},{"name":"github.com/glebarez/go-sqlite","SPDXID":"SPDXRef-Package-go-module-github.com-glebarez-go-sqlite-ff98e600028af170","versionInfo":"v1.21.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"ddae8b142e2c29a854ba7026ca740a2d971e6423b352d86446410097d8005d6a"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:glebarez:go-sqlite:v1.21.2:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:glebarez:go_sqlite:v1.21.2:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/glebarez/go-sqlite@v1.21.2"}]},{"name":"github.com/glebarez/sqlite","SPDXID":"SPDXRef-Package-go-module-github.com-glebarez-sqlite-b0e083c03266e43a","versionInfo":"v1.11.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"c121b48abab33fa56eae7304a4519eaf92e2d7d4692118b6aaf433fbec3418cc"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:glebarez:sqlite:v1.11.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/glebarez/sqlite@v1.11.0"}]},{"name":"github.com/go-logr/logr","SPDXID":"SPDXRef-Package-go-module-github.com-go-logr-logr-529804415a17aa23","versionInfo":"v1.4.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"ea91636a99fc6c57086e22a8dd74f88ff06100da651a2846eadbddfbcad882b6"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:go-logr:logr:v1.4.2:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:go_logr:logr:v1.4.2:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:go:logr:v1.4.2:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/go-logr/logr@v1.4.2"}]},{"name":"github.com/go-logr/stdr","SPDXID":"SPDXRef-Package-go-module-github.com-go-logr-stdr-5987ced6fc984ed5","versionInfo":"v1.2.2","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"8525b11e8a93816d92daa19cd0b4c0239eb7299e582984614f730529931b8da8"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:go-logr:stdr:v1.2.2:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:go_logr:stdr:v1.2.2:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:go:stdr:v1.2.2:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/go-logr/stdr@v1.2.2"}]},{"name":"github.com/google/flatbuffers","SPDXID":"SPDXRef-Package-go-module-github.com-google-flatbuffers-d76d1271c40002b4","versionInfo":"v25.2.10+incompatible","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"177bdc96bec2dc7a41d64f66c42191317aba15d51a959e87fe9357e053f5bf44"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:google:flatbuffers:v25.2.10\\+incompatible:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/google/flatbuffers@v25.2.10%2Bincompatible"}]},{"name":"github.com/google/uuid","SPDXID":"SPDXRef-Package-go-module-github.com-google-uuid-a7515a3fc3821def","versionInfo":"v1.6.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"348bda24330eb231c0f27d630212d2833ac0cf2d4782bfa136b6f9edefbde05d"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:google:uuid:v1.6.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/google/uuid@v1.6.0"}]},{"name":"github.com/grpc-ecosystem/grpc-gateway/v2","SPDXID":"SPDXRef-Package-go-module-github.com-grpc-ecosystem-grpc-gateway-v2-b43c8a4cf52ce2f5","versionInfo":"v2.26.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"7bd463af8d19f7cfdc947bf9620efd22cd0db68b11e4b5d1bddafba3fe8dc1b0"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:grpc-ecosystem:grpc-gateway\\/v2:v2.26.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:grpc-ecosystem:grpc_gateway\\/v2:v2.26.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:grpc_ecosystem:grpc-gateway\\/v2:v2.26.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:grpc_ecosystem:grpc_gateway\\/v2:v2.26.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:grpc:grpc-gateway\\/v2:v2.26.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:grpc:grpc_gateway\\/v2:v2.26.1:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/grpc-ecosystem/grpc-gateway@v2.26.1#v2"}]},{"name":"github.com/jinzhu/copier","SPDXID":"SPDXRef-Package-go-module-github.com-jinzhu-copier-36ae76f11c0e2c93","versionInfo":"v0.4.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"c377225280f5f6c84c0916ab81ca66d1c9bdd72b5a0610efb91a73d4e0cefd4f"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:jinzhu:copier:v0.4.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/jinzhu/copier@v0.4.0"}]},{"name":"github.com/jinzhu/inflection","SPDXID":"SPDXRef-Package-go-module-github.com-jinzhu-inflection-f1f9965f38cc9639","versionInfo":"v1.0.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"2b7d7b16acee85673c62f4959453020946f7e8efd2f4c08a44323b42444a0ff1"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:jinzhu:inflection:v1.0.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/jinzhu/inflection@v1.0.0"}]},{"name":"github.com/jinzhu/now","SPDXID":"SPDXRef-Package-go-module-github.com-jinzhu-now-6f8d1985690194bc","versionInfo":"v1.1.5","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"fe8f6d94795e3fb80e166b2760dcf74469eacde7c7038ef04292abadd4c8c174"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:jinzhu:now:v1.1.5:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/jinzhu/now@v1.1.5"}]},{"name":"github.com/kelseyhightower/envconfig","SPDXID":"SPDXRef-Package-go-module-github.com-kelseyhightower-envconfig-bc929e8743e79442","versionInfo":"v1.4.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"226ea138d85dde92e47c316c6d182eebc443364185d6bdddbcc52d0d3a3672ff"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:kelseyhightower:envconfig:v1.4.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/kelseyhightower/envconfig@v1.4.0"}]},{"name":"github.com/klauspost/compress","SPDXID":"SPDXRef-Package-go-module-github.com-klauspost-compress-07995efbe648cef7","versionInfo":"v1.18.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"73f0aa7dbd2bf988be26d204abbdc55975644689c195fd0244d61cf19b6dc5da"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:klauspost:compress:v1.18.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/klauspost/compress@v1.18.0"}]},{"name":"github.com/mattn/go-isatty","SPDXID":"SPDXRef-Package-go-module-github.com-mattn-go-isatty-8842e07e68c80b25","versionInfo":"v0.0.17","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"0536abc54708783a8bdbb31cfafcaf7566122f6f33a4886fdd1a1376c2cc3e78"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:mattn:go-isatty:v0.0.17:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:mattn:go_isatty:v0.0.17:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/mattn/go-isatty@v0.0.17"}]},{"name":"github.com/munnerz/goautoneg","SPDXID":"SPDXRef-Package-go-module-github.com-munnerz-goautoneg-a2d5472edd297d84","versionInfo":"v0.0.0-20191010083416-a7dc8b61c822","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"0b7c3d3ea208d35fceab57359d4026f3c30e1dc402f65e6622548c02964cac70"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:munnerz:goautoneg:v0.0.0-20191010083416-a7dc8b61c822:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/munnerz/goautoneg@v0.0.0-20191010083416-a7dc8b61c822"}]},{"name":"github.com/prometheus/client_golang","SPDXID":"SPDXRef-Package-go-module-github.com-prometheus-client-golang-bdd63e17995284ed","versionInfo":"v1.22.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"adbf77a7d96890512c72d4f2b38e959d5d642c20e9559d1afd8f76566d1973a4"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:prometheus:client-golang:v1.22.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:prometheus:client_golang:v1.22.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/prometheus/client_golang@v1.22.0"}]},{"name":"github.com/prometheus/client_model","SPDXID":"SPDXRef-Package-go-module-github.com-prometheus-client-model-defb6a554c041b63","versionInfo":"v0.6.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"64a4a1feb7a433e9f709e4bde7630b440745c082aa798f1beb6a7c6a2b367bd1"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:prometheus:client-model:v0.6.1:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:prometheus:client_model:v0.6.1:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/prometheus/client_model@v0.6.1"}]},{"name":"github.com/prometheus/common","SPDXID":"SPDXRef-Package-go-module-github.com-prometheus-common-af712f66d960bf0d","versionInfo":"v0.62.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"c5ab096909675807b21dd5017868d79aeb5e95f24758c46bf8583842ccd9d88a"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:prometheus:common:v0.62.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/prometheus/common@v0.62.0"}]},{"name":"github.com/prometheus/procfs","SPDXID":"SPDXRef-Package-go-module-github.com-prometheus-procfs-d40d492876ed488d","versionInfo":"v0.15.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"61a830385cd48187ca2875fa0ebfac1d3ee49bf8710bbe9407495e6ab8207a97"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:prometheus:procfs:v0.15.1:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/prometheus/procfs@v0.15.1"}]},{"name":"github.com/remyoudompheng/bigfft","SPDXID":"SPDXRef-Package-go-module-github.com-remyoudompheng-bigfft-e7299a79ebb05eec","versionInfo":"v0.0.0-20230129092748-24d4a6f8daec","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"5b4f4854973de2272ae0d8d8ddc95becb93c3b5a89f01741105f33d226d4d2b1"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:remyoudompheng:bigfft:v0.0.0-20230129092748-24d4a6f8daec:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/remyoudompheng/bigfft@v0.0.0-20230129092748-24d4a6f8daec"}]},{"name":"github.com/spf13/cobra","SPDXID":"SPDXRef-Package-go-module-github.com-spf13-cobra-4214770f45a63e4d","versionInfo":"v1.9.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"09749a820ad775b1caf4217ef32c23f0099fecf05198f08e26e807f79e0d9e5a"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:spf13:cobra:v1.9.1:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/spf13/cobra@v1.9.1"}]},{"name":"github.com/spf13/pflag","SPDXID":"SPDXRef-Package-go-module-github.com-spf13-pflag-ec7d141a9e41698f","versionInfo":"v1.0.6","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"8c5cc718b18095bdebbb12c1f0c85b23a03cf80417ff6796e2a7b23595cda76a"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:spf13:pflag:v1.0.6:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/spf13/pflag@v1.0.6"}]},{"name":"github.com/utxorpc/go-codegen","SPDXID":"SPDXRef-Package-go-module-github.com-utxorpc-go-codegen-3016d484a71a685e","versionInfo":"v0.16.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"8cf4f22adbf6388e8cb3b53f8280186da3fa6b1019dfdbd19a859d8cefeb91e3"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:utxorpc:go-codegen:v0.16.0:*:*:*:*:*:*:*"},{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:utxorpc:go_codegen:v0.16.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/utxorpc/go-codegen@v0.16.0"}]},{"name":"github.com/x448/float16","SPDXID":"SPDXRef-Package-go-module-github.com-x448-float16-f1e42195ec07a35a","versionInfo":"v0.8.4","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"a8bc08d48ef4f8d8d1154477cecd493d40a06825d2877496eb6b80293d664813"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:x448:float16:v0.8.4:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/github.com/x448/float16@v0.8.4"}]},{"name":"go.opentelemetry.io/auto/sdk","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-auto-sdk-f0d6dd449abfc03b","versionInfo":"v1.1.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"707e778de84b50de9414b63bd73f8d0ce88d26a0dd3d1697cd37a5d2c2724980"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:auto:sdk:v1.1.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/auto/sdk@v1.1.0"}]},{"name":"go.opentelemetry.io/otel","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-3da38c726c24fb69","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"c4a58a3f1af107a3ad3026e6318d36d42a82e3927edce9ed6bd32a8e19eeb224"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel@v1.35.0"}]},{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-06cd54eb9d1fddee","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"d5f4cd94020964658b3f9155bb47e2915af2d48b225275e37fb405be834ddd7c"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:otel:exporters\\/otlp\\/otlptrace:v1.35.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel/exporters@v1.35.0#otlp/otlptrace"}]},{"name":"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracehttp-f82dcf14bfc129f3","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"c49daa1c3d02d417985532cb47db17d76f906fde647de0ff6f22a3e8acb5a578"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:otel:exporters\\/otlp\\/otlptrace\\/otlptracehttp:v1.35.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel/exporters@v1.35.0#otlp/otlptrace/otlptracehttp"}]},{"name":"go.opentelemetry.io/otel/exporters/stdout/stdouttrace","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-stdout-stdouttrace-b7d14d95c49f0408","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"4f411cd84fb76197f96e04cd4157adf224c35bba08934ded5c7abec24c080e71"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:otel:exporters\\/stdout\\/stdouttrace:v1.35.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel/exporters@v1.35.0#stdout/stdouttrace"}]},{"name":"go.opentelemetry.io/otel/metric","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-metric-101a2a7c3726e10f","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"d339f162ed92372b8c4904f863d58359e8f456972cc64ba494b6b8fec88df743"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:otel:metric:v1.35.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel/metric@v1.35.0"}]},{"name":"go.opentelemetry.io/otel/sdk","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-sdk-2d8fe4ac2e7e250e","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"88f72d7fc8a9ad5c925d22897df492efd78e8e5f69bf157d66a3964f441e8ca6"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:otel:sdk:v1.35.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel/sdk@v1.35.0"}]},{"name":"go.opentelemetry.io/otel/trace","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-trace-53f108d105136fbd","versionInfo":"v1.35.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"74fa447c9bb5b0322aaeecfb047146ddcef9dbc7fa75d7d259f14356dff180cb"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:otel:trace:v1.35.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/otel/trace@v1.35.0"}]},{"name":"go.opentelemetry.io/proto/otlp","SPDXID":"SPDXRef-Package-go-module-go.opentelemetry.io-proto-otlp-b7668c09a452a0e1","versionInfo":"v1.5.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"c49beaee0333077d7f778d3a7c1f14e4205dc901b0e0fdfdf43d5a41653fde2e"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:proto:otlp:v1.5.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.opentelemetry.io/proto/otlp@v1.5.0"}]},{"name":"go.uber.org/automaxprocs","SPDXID":"SPDXRef-Package-go-module-go.uber.org-automaxprocs-86564a92dfc817a1","versionInfo":"v1.6.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"3b7cb6fd035339d6c5f9efdda5734d5bb471da1678b1320fcb26dbc7236a4d4b"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/go.uber.org/automaxprocs@v1.6.0"}]},{"name":"golang.org/x/crypto","SPDXID":"SPDXRef-Package-go-module-golang.org-x-crypto-52dd4bf8b361a3ce","versionInfo":"v0.37.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"9093528c5fd7a7b914d2207667ef6f8933cc5b812aaacaf2c0c5cb24e3ac5d21"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:golang:x\\/crypto:v0.37.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/golang.org/x/crypto@v0.37.0"}]},{"name":"golang.org/x/net","SPDXID":"SPDXRef-Package-go-module-golang.org-x-net-5d3e29ece8902954","versionInfo":"v0.39.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"642bbb1cc583c695e96a229d87321f6a5b4bf4ba77d71ff77c23f5d5b73afdf6"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:golang:networking:v0.39.0:*:*:*:*:go:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/golang.org/x/net@v0.39.0"}]},{"name":"golang.org/x/sys","SPDXID":"SPDXRef-Package-go-module-golang.org-x-sys-144056076ac8d339","versionInfo":"v0.32.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"b3bece143bc841e89b0a67b34a793faba8807e476241a262e15ceba0216b376d"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:golang:x\\/sys:v0.32.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/golang.org/x/sys@v0.32.0"}]},{"name":"golang.org/x/text","SPDXID":"SPDXRef-Package-go-module-golang.org-x-text-de596be6ac67555c","versionInfo":"v0.24.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"75de41ce1e32b7929803c7fd0891c23f8141e03e7573673a26f377ef1249909d"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:golang:text:v0.24.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/golang.org/x/text@v0.24.0"}]},{"name":"google.golang.org/genproto/googleapis/api","SPDXID":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-api-56dd2e4c701917f5","versionInfo":"v0.0.0-20250218202821-56aae31c358a","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"9f02ae18f95402df9a47ea5cae47c546b4d4d4156b4a663260cc586d42151ebd"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:google:genproto:v0.0.0-20250218202821-56aae31c358a:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/google.golang.org/genproto/googleapis@v0.0.0-20250218202821-56aae31c358a#api"}]},{"name":"google.golang.org/genproto/googleapis/rpc","SPDXID":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-rpc-7fa4f97ccd399d6d","versionInfo":"v0.0.0-20250218202821-56aae31c358a","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"e7569a515468729bd439240a33a43b56ea1a92d34868c08bba1641e832a4b2ae"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:google:genproto:v0.0.0-20250218202821-56aae31c358a:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/google.golang.org/genproto/googleapis@v0.0.0-20250218202821-56aae31c358a#rpc"}]},{"name":"google.golang.org/grpc","SPDXID":"SPDXRef-Package-go-module-google.golang.org-grpc-eb21db24e43f8254","versionInfo":"v1.71.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"905efb04674f4d0e3f25958c95bf55a49e696b6e5aaaf56aa20b313471dd7818"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:google:grpc:v1.71.0:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/google.golang.org/grpc@v1.71.0"}]},{"name":"google.golang.org/protobuf","SPDXID":"SPDXRef-Package-go-module-google.golang.org-protobuf-474156240c72b89b","versionInfo":"v1.36.6","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"cf53693c8f24bb65a08969dffadf704cfb27e9e3f52fb92c1d49647cbbddf716"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:google:protobuf:v1.36.6:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/google.golang.org/protobuf@v1.36.6"}]},{"name":"gopkg.in/yaml.v3","SPDXID":"SPDXRef-Package-go-module-gopkg.in-yaml.v3-c5f333d366289a3c","versionInfo":"v3.0.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"7f1566fc6cc0cc45aa2c7baf72d23dd4a4bd8613669963a85aed174d8252ec20"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:yaml_project:yaml:v3.0.1:*:*:*:*:go:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/gopkg.in/yaml.v3@v3.0.1"}]},{"name":"gorm.io/gorm","SPDXID":"SPDXRef-Package-go-module-gorm.io-gorm-00c102b10390755c","versionInfo":"v1.25.12","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"234bbc8b6856408b41ab559f134a36f96b8bf7ef0bdb52bd7b61c749313fd1ff"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/gorm.io/gorm@v1.25.12"}]},{"name":"gorm.io/plugin/opentelemetry","SPDXID":"SPDXRef-Package-go-module-gorm.io-plugin-opentelemetry-8136ff5fb679fc42","versionInfo":"v0.1.12","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"40f499dbf03ca6581c77aaf5ba02f336619726e28242edb2b0aa44c3c9dd902b"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:plugin:opentelemetry:v0.1.12:*:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/gorm.io/plugin/opentelemetry@v0.1.12"}]},{"name":"modernc.org/libc","SPDXID":"SPDXRef-Package-go-module-modernc.org-libc-13d24c24797fb376","versionInfo":"v1.22.5","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"f7504d721fdee41d2e3db24582a6f15ee3a7c41423952fff89c7d01069afca31"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/modernc.org/libc@v1.22.5"}]},{"name":"modernc.org/mathutil","SPDXID":"SPDXRef-Package-go-module-modernc.org-mathutil-4c9b9d36e2e5bf3f","versionInfo":"v1.5.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"ad5d0aa3fe927ccfbc1bec8a8b223cdf49775aecf5cd1bad76c94da10d247e24"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/modernc.org/mathutil@v1.5.0"}]},{"name":"modernc.org/memory","SPDXID":"SPDXRef-Package-go-module-modernc.org-memory-13acb87ce6b7ca1a","versionInfo":"v1.5.0","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"37effc739ac4e84aae819c078a2e0816c689ecc521a165f4ec9e6d0bf888e43b"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/modernc.org/memory@v1.5.0"}]},{"name":"modernc.org/sqlite","SPDXID":"SPDXRef-Package-go-module-modernc.org-sqlite-34fe77fa22a0f030","versionInfo":"v1.23.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"9eb481838691410c2ae7d269bc6110d79b4dc683b9a57fe45237113704801903"}],"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/modernc.org/sqlite@v1.23.1"}]},{"name":"stdlib","SPDXID":"SPDXRef-Package-go-module-stdlib-2c9549dcf8f925de","versionInfo":"go1.24.1","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"sourceInfo":"acquired package info from go module information: dingo","licenseConcluded":"NOASSERTION","licenseDeclared":"BSD-3-Clause","copyrightText":"NOASSERTION","externalRefs":[{"referenceCategory":"SECURITY","referenceType":"cpe23Type","referenceLocator":"cpe:2.3:a:golang:go:1.24.1:-:*:*:*:*:*:*"},{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:golang/stdlib@1.24.1"}]},{"name":"dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz","SPDXID":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","versionInfo":"sha256:10a54437219ae7a105c57f2e5727bf58ad070815c7548081980b52505902d3a3","supplier":"NOASSERTION","downloadLocation":"NOASSERTION","filesAnalyzed":false,"checksums":[{"algorithm":"SHA256","checksumValue":"10a54437219ae7a105c57f2e5727bf58ad070815c7548081980b52505902d3a3"}],"licenseConcluded":"NOASSERTION","licenseDeclared":"NOASSERTION","copyrightText":"NOASSERTION","primaryPackagePurpose":"FILE"}],"files":[{"fileName":"dingo","SPDXID":"SPDXRef-File-dingo-afd235e37a4affe3","fileTypes":["APPLICATION","BINARY"],"checksums":[{"algorithm":"SHA1","checksumValue":"4ea9f9572d9c4a6bf32052e68b048662f14bc549"},{"algorithm":"SHA256","checksumValue":"b1a16fd8e4d63cf1b240beec7b0dd7702112ddd08ec42c30bc8c4295bdc5100f"}],"licenseConcluded":"NOASSERTION","licenseInfoInFiles":["NOASSERTION"],"copyrightText":"NOASSERTION"}],"relationships":[{"spdxElementId":"SPDXRef-Package-go-module-gorm.io-gorm-00c102b10390755c","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-06cd54eb9d1fddee","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-klauspost-compress-07995efbe648cef7","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-metric-101a2a7c3726e10f","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-memory-13acb87ce6b7ca1a","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-libc-13d24c24797fb376","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-sys-144056076ac8d339","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-cespare-xxhash-v2-17c603a49b0e288e","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-connectrpc.com-grpchealth-17d885c528c9913f","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-stdlib-2c9549dcf8f925de","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-sdk-2d8fe4ac2e7e250e","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-utxorpc-go-codegen-3016d484a71a685e","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-sqlite-34fe77fa22a0f030","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-jinzhu-copier-36ae76f11c0e2c93","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-3da38c726c24fb69","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-spf13-cobra-4214770f45a63e4d","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-protobuf-474156240c72b89b","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-mathutil-4c9b9d36e2e5bf3f","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-go-logr-logr-529804415a17aa23","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-crypto-52dd4bf8b361a3ce","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-trace-53f108d105136fbd","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-api-56dd2e4c701917f5","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-go-logr-stdr-5987ced6fc984ed5","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-net-5d3e29ece8902954","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-connectrpc.com-connect-5f0512d8e528f27c","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-btcsuite-btcd-btcutil-667e262f4e372ed6","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-jinzhu-now-6f8d1985690194bc","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-rpc-7fa4f97ccd399d6d","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-gorm.io-plugin-opentelemetry-8136ff5fb679fc42","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.uber.org-automaxprocs-86564a92dfc817a1","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-mattn-go-isatty-8842e07e68c80b25","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-beorn7-perks-8d1fb8953d25de79","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-dgraph-io-ristretto-v2-8dcd38f94ff5f8ee","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-fxamacker-cbor-v2-9f164b0713263b26","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-munnerz-goautoneg-a2d5472edd297d84","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-google-uuid-a7515a3fc3821def","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-common-af712f66d960bf0d","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-glebarez-sqlite-b0e083c03266e43a","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-dustin-go-humanize-b23ca737940d26a7","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-grpc-ecosystem-grpc-gateway-v2-b43c8a4cf52ce2f5","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-proto-otlp-b7668c09a452a0e1","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-stdout-stdouttrace-b7d14d95c49f0408","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-kelseyhightower-envconfig-bc929e8743e79442","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-filippo.io-edwards25519-bcaa61387d7dfd82","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-client-golang-bdd63e17995284ed","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-cenkalti-backoff-v4-c56da740f880e1bc","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-gopkg.in-yaml.v3-c5f333d366289a3c","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-procfs-d40d492876ed488d","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-dgraph-io-badger-v4-d6ac795243454d49","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-google-flatbuffers-d76d1271c40002b4","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-text-de596be6ac67555c","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-client-model-defb6a554c041b63","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-remyoudompheng-bigfft-e7299a79ebb05eec","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-grpc-eb21db24e43f8254","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-spf13-pflag-ec7d141a9e41698f","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-auto-sdk-f0d6dd449abfc03b","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-x448-float16-f1e42195ec07a35a","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-jinzhu-inflection-f1f9965f38cc9639","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-blinklabs-io-gouroboros-f213aae7bcea7b6b","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-connectrpc.com-grpcreflect-f3b853e3ad59aa67","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracehttp-f82dcf14bfc129f3","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-glebarez-go-sqlite-ff98e600028af170","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"DEPENDENCY_OF"},{"spdxElementId":"SPDXRef-Package-go-module-gorm.io-gorm-00c102b10390755c","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-06cd54eb9d1fddee","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-klauspost-compress-07995efbe648cef7","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-metric-101a2a7c3726e10f","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-memory-13acb87ce6b7ca1a","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-libc-13d24c24797fb376","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-sys-144056076ac8d339","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-cespare-xxhash-v2-17c603a49b0e288e","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-connectrpc.com-grpchealth-17d885c528c9913f","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-stdlib-2c9549dcf8f925de","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-sdk-2d8fe4ac2e7e250e","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-utxorpc-go-codegen-3016d484a71a685e","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-sqlite-34fe77fa22a0f030","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-jinzhu-copier-36ae76f11c0e2c93","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-3da38c726c24fb69","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-spf13-cobra-4214770f45a63e4d","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-protobuf-474156240c72b89b","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-modernc.org-mathutil-4c9b9d36e2e5bf3f","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-go-logr-logr-529804415a17aa23","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-crypto-52dd4bf8b361a3ce","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-trace-53f108d105136fbd","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-api-56dd2e4c701917f5","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-go-logr-stdr-5987ced6fc984ed5","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-net-5d3e29ece8902954","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-connectrpc.com-connect-5f0512d8e528f27c","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-btcsuite-btcd-btcutil-667e262f4e372ed6","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-jinzhu-now-6f8d1985690194bc","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-rpc-7fa4f97ccd399d6d","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-gorm.io-plugin-opentelemetry-8136ff5fb679fc42","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.uber.org-automaxprocs-86564a92dfc817a1","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-mattn-go-isatty-8842e07e68c80b25","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-beorn7-perks-8d1fb8953d25de79","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-dgraph-io-ristretto-v2-8dcd38f94ff5f8ee","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-fxamacker-cbor-v2-9f164b0713263b26","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-munnerz-goautoneg-a2d5472edd297d84","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-google-uuid-a7515a3fc3821def","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-common-af712f66d960bf0d","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-glebarez-sqlite-b0e083c03266e43a","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-dustin-go-humanize-b23ca737940d26a7","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-grpc-ecosystem-grpc-gateway-v2-b43c8a4cf52ce2f5","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-proto-otlp-b7668c09a452a0e1","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-stdout-stdouttrace-b7d14d95c49f0408","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-kelseyhightower-envconfig-bc929e8743e79442","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-filippo.io-edwards25519-bcaa61387d7dfd82","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-client-golang-bdd63e17995284ed","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-cenkalti-backoff-v4-c56da740f880e1bc","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-gopkg.in-yaml.v3-c5f333d366289a3c","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-procfs-d40d492876ed488d","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-dgraph-io-badger-v4-d6ac795243454d49","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-google-flatbuffers-d76d1271c40002b4","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-golang.org-x-text-de596be6ac67555c","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-prometheus-client-model-defb6a554c041b63","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-remyoudompheng-bigfft-e7299a79ebb05eec","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-google.golang.org-grpc-eb21db24e43f8254","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-spf13-pflag-ec7d141a9e41698f","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-auto-sdk-f0d6dd449abfc03b","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-x448-float16-f1e42195ec07a35a","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-jinzhu-inflection-f1f9965f38cc9639","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-blinklabs-io-gouroboros-f213aae7bcea7b6b","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-connectrpc.com-grpcreflect-f3b853e3ad59aa67","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracehttp-f82dcf14bfc129f3","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-Package-go-module-github.com-glebarez-go-sqlite-ff98e600028af170","relatedSpdxElement":"SPDXRef-File-dingo-afd235e37a4affe3","relationshipType":"OTHER","comment":"evident-by: indicates the package's existence is evident by the given file"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-connectrpc.com-connect-5f0512d8e528f27c","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-connectrpc.com-grpchealth-17d885c528c9913f","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-connectrpc.com-grpcreflect-f3b853e3ad59aa67","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-filippo.io-edwards25519-bcaa61387d7dfd82","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-beorn7-perks-8d1fb8953d25de79","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-dingo-510e72a1f2238012","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-blinklabs-io-gouroboros-f213aae7bcea7b6b","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-btcsuite-btcd-btcutil-667e262f4e372ed6","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-cenkalti-backoff-v4-c56da740f880e1bc","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-cespare-xxhash-v2-17c603a49b0e288e","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-dgraph-io-badger-v4-d6ac795243454d49","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-dgraph-io-ristretto-v2-8dcd38f94ff5f8ee","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-dustin-go-humanize-b23ca737940d26a7","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-fxamacker-cbor-v2-9f164b0713263b26","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-glebarez-go-sqlite-ff98e600028af170","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-glebarez-sqlite-b0e083c03266e43a","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-go-logr-logr-529804415a17aa23","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-go-logr-stdr-5987ced6fc984ed5","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-google-flatbuffers-d76d1271c40002b4","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-google-uuid-a7515a3fc3821def","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-grpc-ecosystem-grpc-gateway-v2-b43c8a4cf52ce2f5","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-jinzhu-copier-36ae76f11c0e2c93","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-jinzhu-inflection-f1f9965f38cc9639","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-jinzhu-now-6f8d1985690194bc","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-kelseyhightower-envconfig-bc929e8743e79442","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-klauspost-compress-07995efbe648cef7","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-mattn-go-isatty-8842e07e68c80b25","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-munnerz-goautoneg-a2d5472edd297d84","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-prometheus-client-golang-bdd63e17995284ed","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-prometheus-client-model-defb6a554c041b63","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-prometheus-common-af712f66d960bf0d","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-prometheus-procfs-d40d492876ed488d","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-remyoudompheng-bigfft-e7299a79ebb05eec","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-spf13-cobra-4214770f45a63e4d","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-spf13-pflag-ec7d141a9e41698f","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-utxorpc-go-codegen-3016d484a71a685e","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-github.com-x448-float16-f1e42195ec07a35a","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-auto-sdk-f0d6dd449abfc03b","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-3da38c726c24fb69","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-06cd54eb9d1fddee","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-otlp-otlptrace-otlptracehttp-f82dcf14bfc129f3","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-exporters-stdout-stdouttrace-b7d14d95c49f0408","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-metric-101a2a7c3726e10f","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-sdk-2d8fe4ac2e7e250e","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-otel-trace-53f108d105136fbd","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.opentelemetry.io-proto-otlp-b7668c09a452a0e1","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-go.uber.org-automaxprocs-86564a92dfc817a1","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-golang.org-x-crypto-52dd4bf8b361a3ce","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-golang.org-x-net-5d3e29ece8902954","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-golang.org-x-sys-144056076ac8d339","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-golang.org-x-text-de596be6ac67555c","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-api-56dd2e4c701917f5","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-google.golang.org-genproto-googleapis-rpc-7fa4f97ccd399d6d","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-google.golang.org-grpc-eb21db24e43f8254","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-google.golang.org-protobuf-474156240c72b89b","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-gopkg.in-yaml.v3-c5f333d366289a3c","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-gorm.io-gorm-00c102b10390755c","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-gorm.io-plugin-opentelemetry-8136ff5fb679fc42","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-modernc.org-libc-13d24c24797fb376","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-modernc.org-mathutil-4c9b9d36e2e5bf3f","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-modernc.org-memory-13acb87ce6b7ca1a","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-modernc.org-sqlite-34fe77fa22a0f030","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relatedSpdxElement":"SPDXRef-Package-go-module-stdlib-2c9549dcf8f925de","relationshipType":"CONTAINS"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-DocumentRoot-File-dingo-0.5.0-SNAPSHOT-d9431e4-linux-x86-64.tar.gz","relationshipType":"DESCRIBES"}]}
Binary file
Binary file
@@ -0,0 +1,51 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ # This file was generated by GoReleaser. DO NOT EDIT.
5
+ class Dingo < Formula
6
+ desc "Dingo is a Cardano data node written in Go"
7
+ homepage "git@github.com:blinklabs-io/dingo.git"
8
+ version "0.5.0-SNAPSHOT-d9431e4"
9
+
10
+ on_macos do
11
+ if Hardware::CPU.intel?
12
+ url "https://github.com/blinklabs-io/dingo/releases/download/v0.5.0/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz"
13
+ sha256 "8a9a2d9d1dda0c5302cf01f2017f7b0f235f9a5b37df253410a3951630a99147"
14
+
15
+ def install
16
+ bin.install "dingo"
17
+ end
18
+ end
19
+ if Hardware::CPU.arm?
20
+ url "https://github.com/blinklabs-io/dingo/releases/download/v0.5.0/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz"
21
+ sha256 "c51a06b85b0fb53ea5149152dbc5b7f77423eec9a3ca4230be2ef34d48aef2a5"
22
+
23
+ def install
24
+ bin.install "dingo"
25
+ end
26
+ end
27
+ end
28
+
29
+ on_linux do
30
+ if Hardware::CPU.intel?
31
+ if Hardware::CPU.is_64_bit?
32
+ url "https://github.com/blinklabs-io/dingo/releases/download/v0.5.0/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz"
33
+ sha256 "10a54437219ae7a105c57f2e5727bf58ad070815c7548081980b52505902d3a3"
34
+
35
+ def install
36
+ bin.install "dingo"
37
+ end
38
+ end
39
+ end
40
+ if Hardware::CPU.arm?
41
+ if Hardware::CPU.is_64_bit?
42
+ url "https://github.com/blinklabs-io/dingo/releases/download/v0.5.0/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz"
43
+ sha256 "87f24431d51ff63f0fe1e4f826ed63830a3ba83cf34342371332380cb025e78c"
44
+
45
+ def install
46
+ bin.install "dingo"
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1 @@
1
+ {"project_name":"dingo","tag":"v0.5.0","previous_tag":"v0.4.6","version":"0.5.0-SNAPSHOT-d9431e4","commit":"d9431e4e116e595de831d4dcbb2423302ec205fe","date":"2025-04-17T17:08:26.63179172-04:00","runtime":{"goos":"linux","goarch":"amd64"}}
package/event/event.go ADDED
@@ -0,0 +1,141 @@
1
+ // Copyright 2024 Blink Labs Software
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ package event
16
+
17
+ import (
18
+ "sync"
19
+ "time"
20
+
21
+ "github.com/prometheus/client_golang/prometheus"
22
+ )
23
+
24
+ const (
25
+ EventQueueSize = 20
26
+ )
27
+
28
+ type EventType string
29
+
30
+ type EventSubscriberId int
31
+
32
+ type EventHandlerFunc func(Event)
33
+
34
+ type Event struct {
35
+ Type EventType
36
+ Timestamp time.Time
37
+ Data any
38
+ }
39
+
40
+ func NewEvent(eventType EventType, eventData any) Event {
41
+ return Event{
42
+ Type: eventType,
43
+ Timestamp: time.Now(),
44
+ Data: eventData,
45
+ }
46
+ }
47
+
48
+ type EventBus struct {
49
+ mu sync.RWMutex
50
+ subscribers map[EventType]map[EventSubscriberId]chan Event
51
+ lastSubId EventSubscriberId
52
+ metrics *eventMetrics
53
+ }
54
+
55
+ // NewEventBus creates a new EventBus
56
+ func NewEventBus(promRegistry prometheus.Registerer) *EventBus {
57
+ e := &EventBus{
58
+ subscribers: make(map[EventType]map[EventSubscriberId]chan Event),
59
+ }
60
+ if promRegistry != nil {
61
+ e.initMetrics(promRegistry)
62
+ }
63
+ return e
64
+ }
65
+
66
+ // Subscribe allows a consumer to receive events of a particular type via a channel
67
+ func (e *EventBus) Subscribe(
68
+ eventType EventType,
69
+ ) (EventSubscriberId, <-chan Event) {
70
+ e.mu.Lock()
71
+ defer e.mu.Unlock()
72
+ // Create event channel
73
+ evtCh := make(chan Event, EventQueueSize)
74
+ // Increment subscriber ID
75
+ subId := e.lastSubId + 1
76
+ e.lastSubId = subId
77
+ // Add new subscriber
78
+ if _, ok := e.subscribers[eventType]; !ok {
79
+ e.subscribers[eventType] = make(map[EventSubscriberId]chan Event)
80
+ }
81
+ evtTypeSubs := e.subscribers[eventType]
82
+ evtTypeSubs[subId] = evtCh
83
+ if e.metrics != nil {
84
+ e.metrics.subscribers.WithLabelValues(string(eventType)).Inc()
85
+ }
86
+ return subId, evtCh
87
+ }
88
+
89
+ // SubscribeFunc allows a consumer to receive events of a particular type via a callback function
90
+ func (e *EventBus) SubscribeFunc(
91
+ eventType EventType,
92
+ handlerFunc EventHandlerFunc,
93
+ ) EventSubscriberId {
94
+ subId, evtCh := e.Subscribe(eventType)
95
+ go func(evtCh <-chan Event, handlerFunc EventHandlerFunc) {
96
+ for {
97
+ evt, ok := <-evtCh
98
+ if !ok {
99
+ return
100
+ }
101
+ handlerFunc(evt)
102
+ }
103
+ }(evtCh, handlerFunc)
104
+ return subId
105
+ }
106
+
107
+ // Unsubscribe stops delivery of events for a particular type for an existing subscriber
108
+ func (e *EventBus) Unsubscribe(eventType EventType, subId EventSubscriberId) {
109
+ e.mu.Lock()
110
+ defer e.mu.Unlock()
111
+ if evtTypeSubs, ok := e.subscribers[eventType]; ok {
112
+ delete(evtTypeSubs, subId)
113
+ }
114
+ if e.metrics != nil {
115
+ e.metrics.subscribers.WithLabelValues(string(eventType)).Dec()
116
+ }
117
+ }
118
+
119
+ // Publish allows a producer to send an event of a particular type to all subscribers
120
+ func (e *EventBus) Publish(eventType EventType, evt Event) {
121
+ // Build list of channels inside read lock to avoid map race condition
122
+ e.mu.RLock()
123
+ subs, ok := e.subscribers[eventType]
124
+ subChans := make([]chan Event, 0, len(subs))
125
+ if ok {
126
+ for _, subCh := range subs {
127
+ subChans = append(subChans, subCh)
128
+ }
129
+ }
130
+ e.mu.RUnlock()
131
+ // Send event on gathered channels
132
+ for _, subCh := range subChans {
133
+ // NOTE: this is purposely a blocking operation to prevent dropping data
134
+ // XXX: do we maybe want to detect a blocked channel and temporarily set it aside
135
+ // to get the event sent to the other subscribers?
136
+ subCh <- evt
137
+ }
138
+ if e.metrics != nil {
139
+ e.metrics.eventsTotal.WithLabelValues(string(eventType)).Inc()
140
+ }
141
+ }
@@ -0,0 +1,115 @@
1
+ // Copyright 2024 Blink Labs Software
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ package event_test
16
+
17
+ import (
18
+ "testing"
19
+ "time"
20
+
21
+ "github.com/blinklabs-io/dingo/event"
22
+ )
23
+
24
+ func TestEventBusSingleSubscriber(t *testing.T) {
25
+ var testEvtData int = 999
26
+ var testEvtType event.EventType = "test.event"
27
+ eb := event.NewEventBus(nil)
28
+ _, subCh := eb.Subscribe(testEvtType)
29
+ eb.Publish(testEvtType, event.NewEvent(testEvtType, testEvtData))
30
+ select {
31
+ case evt, ok := <-subCh:
32
+ if !ok {
33
+ t.Fatalf("event channel closed unexpectedly")
34
+ }
35
+ switch v := evt.Data.(type) {
36
+ case int:
37
+ if v != testEvtData {
38
+ t.Fatalf("did not get expected event")
39
+ }
40
+ default:
41
+ t.Fatalf("event data was not of expected type, expected int, got %T", evt.Data)
42
+ }
43
+ case <-time.After(1 * time.Second):
44
+ t.Fatalf("timeout waiting for event")
45
+ }
46
+ }
47
+
48
+ func TestEventBusMultipleSubscribers(t *testing.T) {
49
+ var testEvtData int = 999
50
+ var testEvtType event.EventType = "test.event"
51
+ eb := event.NewEventBus(nil)
52
+ _, sub1Ch := eb.Subscribe(testEvtType)
53
+ _, sub2Ch := eb.Subscribe(testEvtType)
54
+ eb.Publish(testEvtType, event.NewEvent(testEvtType, testEvtData))
55
+ var gotVal1, gotVal2 bool
56
+ for {
57
+ if gotVal1 && gotVal2 {
58
+ break
59
+ }
60
+ select {
61
+ case evt, ok := <-sub1Ch:
62
+ if !ok {
63
+ t.Fatalf("event channel closed unexpectedly")
64
+ }
65
+ if gotVal1 {
66
+ t.Fatalf("received unexpected event")
67
+ }
68
+ switch v := evt.Data.(type) {
69
+ case int:
70
+ if v != testEvtData {
71
+ t.Fatalf("did not get expected event")
72
+ }
73
+ default:
74
+ t.Fatalf("event data was not of expected type, expected int, got %T", evt.Data)
75
+ }
76
+ gotVal1 = true
77
+ case evt, ok := <-sub2Ch:
78
+ if !ok {
79
+ t.Fatalf("event channel closed unexpectedly")
80
+ }
81
+ if gotVal2 {
82
+ t.Fatalf("received unexpected event")
83
+ }
84
+ switch v := evt.Data.(type) {
85
+ case int:
86
+ if v != testEvtData {
87
+ t.Fatalf("did not get expected event")
88
+ }
89
+ default:
90
+ t.Fatalf("event data was not of expected type, expected int, got %T", evt.Data)
91
+ }
92
+ gotVal2 = true
93
+ case <-time.After(1 * time.Second):
94
+ t.Fatalf("timeout waiting for event")
95
+ }
96
+ }
97
+ }
98
+
99
+ func TestEventBusUnsubscribe(t *testing.T) {
100
+ var testEvtData int = 999
101
+ var testEvtType event.EventType = "test.event"
102
+ eb := event.NewEventBus(nil)
103
+ subId, subCh := eb.Subscribe(testEvtType)
104
+ eb.Unsubscribe(testEvtType, subId)
105
+ eb.Publish(testEvtType, event.NewEvent(testEvtType, testEvtData))
106
+ select {
107
+ case _, ok := <-subCh:
108
+ if !ok {
109
+ t.Fatalf("event channel closed unexpectedly")
110
+ }
111
+ t.Fatalf("received unexpected event")
112
+ case <-time.After(1 * time.Second):
113
+ // NOTE: this is the expected way for the test to end
114
+ }
115
+ }