diff --git a/.github/workflows/prop.yml b/.github/workflows/prop.yml deleted file mode 100644 index fc4fba0a..00000000 --- a/.github/workflows/prop.yml +++ /dev/null @@ -1,152 +0,0 @@ -name: Run property-based tests - -on: - pull_request: - merge_group: - types: [checks_requested] - schedule: - # Run every midnight UTC - - cron: "0 0 * * *" - workflow_dispatch: # manually triggered - -env: - CARGO_TERM_COLOR: always - SCCACHE_GHA_ENABLED: "true" - RUSTC_WRAPPER: "sccache" - -jobs: - generate-matrix: - name: Generate Matrix - runs-on: ubuntu-latest - outputs: - networks: ${{ steps.generate-matrix.outputs.networks }} - build_tag: ${{ steps.generate-matrix.outputs.build_tag }} - steps: - - - name: Checkout - uses: actions/checkout@v3 - - - name: Generate network matrix - id: generate-matrix - run: | - NETWORKS=$(ls networks | jq -R -s -c '. | gsub(".yaml"; "") | split("\n")[:-1]') - echo "Networks:" - echo ${NETWORKS} - echo "networks=${NETWORKS}" >> $GITHUB_OUTPUT - # Choose unique name for this build - BUILD_TAG="$(echo ${{ github.sha }} | head -c 8)-${{ github.run_id }}" - echo "Build tag:" - echo ${BUILD_TAG} - echo "build_tag=${BUILD_TAG}" >> $GITHUB_OUTPUT - cat $GITHUB_OUTPUT - - publish-property: - name: Build/Publish 'ceramic-tests-property' Image - runs-on: ubuntu-latest - needs: - - generate-matrix - steps: - - uses: actions/checkout@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login to Public ECR - uses: docker/login-action@v2 - with: - registry: public.ecr.aws - username: ${{ secrets.AWS_ACCESS_KEY_ID }} - password: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - env: - AWS_REGION: us-east-1 - - name: Cache cargo - uses: actions/cache@v3 - with: - path: cargo-cache - key: cargo-cache-${{ github.ref_name }}-${{ github.sha }} - restore-keys: | - cargo-cache-${{ github.ref_name }} - cargo-cache - - name: Inject cargo-cache into docker - run: | - mkdir -p cargo-cache - cd cargo-cache - ../ci-scripts/inject_docker_mount_cache.sh - - name: Build and Publish - run: make BUILD_TAG=${{ needs.generate-matrix.outputs.build_tag }} publish-tests-property - - name: Extact cargo-cache from docker - run: | - cd cargo-cache - ../ci-scripts/extract_docker_mount_cache.sh - - build-driver: - name: Build 'hermetic-driver' binary - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - # The prefix cache key, this can be changed to start a new cache manually. - # default: "v0-rust" - prefix-key: v0 - # Cache only the cargo registry - cache-targets: false - - uses: mozilla-actions/sccache-action@v0.0.3 - - name: Build Tester - run: make BUILD_PROFILE=release driver - - uses: actions/upload-artifact@master - with: - name: hermetic-driver - path: ./target/release/hermetic-driver - retention-days: 1 - - run-tests: - name: Test - runs-on: ubuntu-latest - needs: - - generate-matrix - - publish-property - - build-driver - strategy: - fail-fast: false - matrix: - networks: ${{ fromJSON(needs.generate-matrix.outputs.networks) }} - steps: - - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup GKE auth - uses: 'google-github-actions/auth@v1' - with: - credentials_json: ${{ secrets.GKE_SA_KEY }} - - - name: Get GKE credentials - uses: 'google-github-actions/get-gke-credentials@v1' - with: - cluster_name: ${{ secrets.GKE_CLUSTER }} - location: ${{ secrets.GKE_ZONE }} - - uses: actions/download-artifact@master - with: - name: hermetic-driver - path: ./bin - - - name: Test ${{ matrix.networks }} - run: | - export BUILD_TAG=${{ needs.generate-matrix.outputs.build_tag }} - export TEST_NETWORK=./networks/${{ matrix.networks }}.yaml - chmod +x ./bin/hermetic-driver - make HERMETIC_CMD=./bin/hermetic-driver prop-test - - collect-results: - name: Property Test Results - if: ${{ always() }} - runs-on: ubuntu-latest - needs: [run-tests] - steps: - - run: exit 1 - # see https://stackoverflow.com/a/67532120/4907315 - if: >- - ${{ - contains(needs.*.result, 'failure') - || contains(needs.*.result, 'cancelled') - }} diff --git a/Cargo.lock b/Cargo.lock index 0d2377cc..b7f7e6a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,17 +17,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check 0.9.4", -] - [[package]] name = "ahash" version = "0.8.3" @@ -37,7 +26,7 @@ dependencies = [ "cfg-if", "getrandom", "once_cell", - "version_check 0.9.4", + "version_check", ] [[package]] @@ -123,139 +112,6 @@ name = "anyhow" version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" -dependencies = [ - "backtrace", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "async-attributes" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand 2.0.1", - "futures-lite", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock", - "autocfg 1.1.0", - "cfg-if", - "concurrent-queue", - "futures-lite", - "log 0.4.20", - "parking", - "polling", - "rustix 0.37.25", - "slab", - "socket2 0.4.9", - "waker-fn", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-attributes", - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log 0.4.20", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" [[package]] name = "async-trait" @@ -268,21 +124,6 @@ dependencies = [ "syn 2.0.38", ] -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" -dependencies = [ - "autocfg 1.1.0", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -295,12 +136,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "futures-core", "getrandom", "instant", - "pin-project-lite", - "rand 0.8.5", - "tokio", + "rand", ] [[package]] @@ -318,46 +156,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" -dependencies = [ - "byteorder", - "safemem", -] - -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.20.0" @@ -370,18 +168,6 @@ version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bech32" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b" - [[package]] name = "bitflags" version = "1.3.2" @@ -395,4727 +181,1444 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] -name = "bitvec" -version = "0.20.4" +name = "bumpalo" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] -name = "blake2" -version = "0.10.6" +name = "bytes" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] -name = "blake2b_simd" -version = "0.5.11" +name = "cc" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq 0.1.5", + "libc", ] [[package]] -name = "blake2b_simd" -version = "1.0.2" +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", -] +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "blake2s_simd" -version = "1.0.2" +name = "chrono" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.3.0", + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets", ] [[package]] -name = "blake3" -version = "1.5.0" +name = "clap" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ - "arrayref", - "arrayvec 0.7.4", - "cc", - "cfg-if", - "constant_time_eq 0.3.0", + "clap_builder", + "clap_derive", ] [[package]] -name = "block-buffer" -version = "0.7.3" +name = "clap_builder" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", + "anstream", + "anstyle", + "clap_lex", + "strsim", ] [[package]] -name = "block-buffer" -version = "0.9.0" +name = "clap_derive" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" dependencies = [ - "generic-array 0.14.7", + "heck", + "proc-macro2", + "quote", + "syn 2.0.38", ] [[package]] -name = "block-buffer" -version = "0.10.4" +name = "clap_lex" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" + +[[package]] +name = "colorchoice" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array 0.14.7", -] +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] -name = "block-padding" -version = "0.1.5" +name = "core-foundation" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ - "byte-tools", + "core-foundation-sys", + "libc", ] [[package]] -name = "blocking" -version = "1.4.1" +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "darling" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ - "async-channel", - "async-lock", - "async-task", - "fastrand 2.0.1", - "futures-io", - "futures-lite", - "piper", - "tracing", + "darling_core", + "darling_macro", ] [[package]] -name = "bs58" -version = "0.4.0" +name = "darling_core" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ - "sha2 0.9.9", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", ] [[package]] -name = "buf_redux" -version = "0.8.4" +name = "darling_macro" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "memchr", - "safemem", + "darling_core", + "quote", + "syn 1.0.109", ] [[package]] -name = "bumpalo" -version = "3.14.0" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] -name = "byte-tools" -version = "0.3.1" +name = "dyn-clone" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd" [[package]] -name = "byteorder" -version = "1.5.0" +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] -name = "bytes" -version = "0.4.12" +name = "env_logger" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" dependencies = [ - "byteorder", - "iovec", + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", ] [[package]] -name = "bytes" -version = "1.5.0" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "cacaos" -version = "0.5.1" +name = "errno" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92680fcbb8e24eaa4640c6deca0042db02da17c8b92fde62a0c517bcb6769d7d" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "async-trait", - "hex", - "http", - "iri-string", - "libipld", - "serde", - "serde_with 2.3.3", - "siwe", - "thiserror", - "time 0.3.30", - "url", -] - -[[package]] -name = "cached" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4dfac631a8e77b2f327f7852bb6172771f5279c4512efe79fad6067b37be3d" -dependencies = [ - "hashbrown 0.11.2", - "once_cell", + "libc", + "windows-sys", ] [[package]] -name = "cbor4ii" -version = "0.2.14" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4" -dependencies = [ - "serde", -] +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "cc" -version = "1.0.83" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "libc", + "foreign-types-shared", ] [[package]] -name = "ceramic-api-server" +name = "foreign-types-shared" version = "0.1.1" -source = "git+https://github.com/3box/rust-ceramic?branch=main#1f53cd39032367c3722eac38d05ee563a72893e8" -dependencies = [ - "async-trait", - "chrono", - "futures", - "hyper", - "hyper-openssl", - "hyper-tls", - "lazy_static", - "log 0.4.20", - "mime 0.3.17", - "native-tls", - "openssl", - "percent-encoding 2.3.0", - "regex", - "serde", - "serde_ignored", - "serde_json", - "swagger", - "url", -] +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "ceramic-core" -version = "0.6.0" -source = "git+https://github.com/3box/rust-ceramic?branch=main#1f53cd39032367c3722eac38d05ee563a72893e8" +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "anyhow", - "async-trait", - "base64 0.21.4", - "cid 0.9.0", - "did-method-key", - "did-pkh", - "hex", - "int-enum", - "libp2p-identity", - "minicbor", - "multibase 0.9.1", - "once_cell", - "regex", - "serde", - "serde_bytes", - "serde_ipld_dagcbor", - "serde_json", - "ssi", - "unsigned-varint", + "percent-encoding", ] [[package]] -name = "ceramic-event" -version = "0.1.0" -source = "git+https://github.com/3box/rust-ceramic?branch=main#1f53cd39032367c3722eac38d05ee563a72893e8" +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ - "anyhow", - "ceramic-core", - "multibase 0.9.1", - "multihash 0.17.0", - "once_cell", - "rand 0.8.5", - "serde", - "ssi", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "ceramic-http-client" -version = "0.1.0" -source = "git+https://github.com/3box/ceramic-http-client-rs?branch=main#be4b848c2a178e860eb17941ddc430b5e91c4f9f" +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ - "anyhow", - "ceramic-event", - "json-patch", - "reqwest", - "schemars", - "serde", - "serde_json", - "ssi", - "url", + "futures-core", + "futures-sink", ] [[package]] -name = "ceramic-kubo-rpc-server" -version = "0.1.1" -source = "git+https://github.com/3box/rust-ceramic?branch=main#1f53cd39032367c3722eac38d05ee563a72893e8" -dependencies = [ - "async-trait", - "chrono", - "futures", - "hyper", - "hyper-openssl", - "hyper-tls", - "lazy_static", - "log 0.4.20", - "mime 0.2.6", - "mime 0.3.17", - "multipart", - "native-tls", - "openssl", - "percent-encoding 2.3.0", - "regex", - "serde", - "serde_ignored", - "serde_json", - "swagger", - "url", -] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] -name = "ceramic-tests-property" -version = "0.1.0" +name = "futures-executor" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ - "anyhow", - "backoff", - "ceramic-api-server", - "ceramic-http-client", - "ceramic-kubo-rpc-server", - "dotenvy", - "env_logger", - "hyper", - "json-patch", - "rand 0.8.5", - "schemars", - "serde", - "serde_json", - "swagger", - "test-log", - "tokio", - "url", + "futures-core", + "futures-task", + "futures-util", ] [[package]] -name = "cfg-if" -version = "1.0.0" +name = "futures-io" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] -name = "chrono" -version = "0.4.31" +name = "futures-macro" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets", + "proc-macro2", + "quote", + "syn 2.0.38", ] [[package]] -name = "cid" -version = "0.8.6" +name = "futures-sink" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" -dependencies = [ - "core2", - "multibase 0.9.1", - "multihash 0.16.3", - "serde", - "serde_bytes", - "unsigned-varint", -] +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] -name = "cid" -version = "0.9.0" +name = "futures-task" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" -dependencies = [ - "core2", - "multibase 0.9.1", - "multihash 0.17.0", - "serde", - "serde_bytes", - "unsigned-varint", -] +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] -name = "clap" -version = "4.4.6" +name = "futures-util" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ - "clap_builder", - "clap_derive", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", ] [[package]] -name = "clap_builder" -version = "4.4.6" +name = "gethostname" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim 0.10.0", + "libc", + "windows-targets", ] [[package]] -name = "clap_derive" -version = "4.4.2" +name = "getrandom" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.38", + "cfg-if", + "libc", + "wasi", ] [[package]] -name = "clap_lex" -version = "0.5.1" +name = "gimli" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] -name = "clear_on_drop" -version = "0.2.5" +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38508a63f4979f0048febc9966fadbd48e5dab31fd0ec6a3f151bbf4a74f7423" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" dependencies = [ - "cc", + "ahash", + "allocator-api2", ] [[package]] -name = "cloudabi" -version = "0.0.3" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermetic-driver" +version = "0.1.0" dependencies = [ - "bitflags 1.3.2", + "anyhow", + "clap", + "env_logger", + "futures", + "k8s-openapi", + "keramik-operator", + "kube", + "log", + "serde", + "serde_yaml 0.8.26", + "tokio", ] [[package]] -name = "colorchoice" -version = "1.0.0" +name = "hermit-abi" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] -name = "combination" -version = "0.1.5" +name = "home" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "337cdbf3f1a0e643b4a7d1a2ffa39d22342fb6ee25739b5cfb997c28b3586422" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] [[package]] -name = "concurrent-queue" -version = "2.3.0" +name = "http" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "crossbeam-utils", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "const-oid" -version = "0.7.1" +name = "http-body" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] [[package]] -name = "const-oid" -version = "0.9.5" +name = "http-range-header" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] -name = "constant_time_eq" -version = "0.1.5" +name = "httparse" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] -name = "constant_time_eq" -version = "0.3.0" +name = "httpdate" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] -name = "contextual" -version = "0.1.6" +name = "humantime" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ca71f324d19e85a2e976be04b5ecbb193253794a75adfe2e5044c8bef03f6a" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] -name = "core-foundation" -version = "0.9.3" +name = "hyper" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ - "core-foundation-sys", - "libc", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower-service", + "tracing", + "want", ] [[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "core2" -version = "0.4.0" +name = "hyper-openssl" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" dependencies = [ - "memchr", + "http", + "hyper", + "linked_hash_set", + "once_cell", + "openssl", + "openssl-sys", + "parking_lot", + "tokio", + "tokio-openssl", + "tower-layer", ] [[package]] -name = "cpufeatures" -version = "0.2.9" +name = "hyper-rustls" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" dependencies = [ - "libc", + "futures-util", + "http", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", ] [[package]] -name = "crc32fast" -version = "1.3.2" +name = "hyper-timeout" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "cfg-if", + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", ] [[package]] -name = "crossbeam-utils" -version = "0.8.16" +name = "iana-time-zone" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ - "cfg-if", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", ] [[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.3.2" +name = "iana-time-zone-haiku" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "generic-array 0.14.7", - "subtle", + "cc", ] [[package]] -name = "crypto-bigint" -version = "0.4.9" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle", - "zeroize", -] +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] -name = "crypto-bigint" -version = "0.5.3" +name = "indexmap" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle", - "zeroize", + "autocfg", + "hashbrown 0.12.3", ] [[package]] -name = "crypto-common" -version = "0.1.6" +name = "indexmap" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ - "generic-array 0.14.7", - "typenum", + "equivalent", + "hashbrown 0.14.1", ] [[package]] -name = "curve25519-dalek" -version = "4.1.1" +name = "instant" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "platforms", - "rustc_version", - "subtle", - "zeroize", ] [[package]] -name = "curve25519-dalek-derive" -version = "0.1.0" +name = "is-terminal" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", + "hermit-abi", + "rustix", + "windows-sys", ] [[package]] -name = "darling" -version = "0.10.2" +name = "itoa" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" -dependencies = [ - "darling_core 0.10.2", - "darling_macro 0.10.2", -] +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] -name = "darling" -version = "0.13.4" +name = "js-sys" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", + "wasm-bindgen", ] [[package]] -name = "darling" -version = "0.14.4" +name = "json-patch" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", + "serde", + "serde_json", + "thiserror", + "treediff", ] [[package]] -name = "darling" -version = "0.20.3" +name = "jsonpath_lib" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f" dependencies = [ - "darling_core 0.20.3", - "darling_macro 0.20.3", + "log", + "serde", + "serde_json", ] [[package]] -name = "darling_core" -version = "0.10.2" +name = "k8s-openapi" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +checksum = "edc3606fd16aca7989db2f84bb25684d0270c6d6fa1dbcd0025af7b4130523a6" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.9.3", - "syn 1.0.109", + "base64 0.21.4", + "bytes", + "chrono", + "schemars", + "serde", + "serde-value", + "serde_json", ] [[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +name = "keramik-common" +version = "0.1.0" +source = "git+https://github.com/3box/keramik.git?branch=main#4f870ec20398cf32c9cd56b7c3e51e5bae8b8510" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "anyhow", + "gethostname", + "schemars", + "serde", ] [[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +name = "keramik-operator" +version = "0.0.1" +source = "git+https://github.com/3box/keramik.git?branch=main#4f870ec20398cf32c9cd56b7c3e51e5bae8b8510" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "k8s-openapi", + "keramik-common", + "kube", + "rand", + "schemars", + "serde", + "serde_json", ] [[package]] -name = "darling_core" -version = "0.20.3" +name = "kube" +version = "0.86.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +checksum = "f8647c2211a9b480d910b155d573602c52cd5f646acecb06a03d594865dc4784" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 2.0.38", + "k8s-openapi", + "kube-client", + "kube-core", + "kube-derive", + "kube-runtime", ] [[package]] -name = "darling_macro" -version = "0.10.2" +name = "kube-client" +version = "0.86.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +checksum = "af8952521f3e8ce11920229e5f2965fef70525aecd9efc7b65e39bf9e2c6f66d" dependencies = [ - "darling_core 0.10.2", - "quote", - "syn 1.0.109", + "base64 0.20.0", + "bytes", + "chrono", + "either", + "futures", + "home", + "http", + "http-body", + "hyper", + "hyper-openssl", + "hyper-rustls", + "hyper-timeout", + "jsonpath_lib", + "k8s-openapi", + "kube-core", + "openssl", + "pem", + "pin-project", + "rustls", + "rustls-pemfile", + "secrecy", + "serde", + "serde_json", + "serde_yaml 0.9.25", + "thiserror", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tracing", ] [[package]] -name = "darling_macro" -version = "0.13.4" +name = "kube-core" +version = "0.86.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "7608a0cd05dfa36167d2da982bb70f17feb5450f73ec601f6d428bbcf991c5b9" dependencies = [ - "darling_core 0.13.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core 0.14.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" -dependencies = [ - "darling_core 0.20.3", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "data-encoding" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" - -[[package]] -name = "data-encoding-macro" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - -[[package]] -name = "decoded-char" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5440d1dc8ea7cae44cda3c64568db29bfa2434aba51ae66a50c00488841a65a3" - -[[package]] -name = "der" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" -dependencies = [ - "const-oid 0.7.1", - "crypto-bigint 0.3.2", - "pem-rfc7468 0.3.1", -] - -[[package]] -name = "der" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" -dependencies = [ - "const-oid 0.9.5", - "zeroize", -] - -[[package]] -name = "der" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" -dependencies = [ - "const-oid 0.9.5", - "pem-rfc7468 0.7.0", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" -dependencies = [ - "darling 0.10.2", - "derive_builder_core", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_core" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" -dependencies = [ - "darling 0.10.2", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "did-method-key" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8663f0a89682282e5afb994da3bae67d48333ebc32a372bc3cdbb99c2e2cfad" -dependencies = [ - "async-trait", - "k256 0.13.1", - "multibase 0.8.0", - "p256", - "serde_json", - "simple_asn1", - "ssi-crypto", - "ssi-dids", - "ssi-jwk", - "thiserror", -] - -[[package]] -name = "did-pkh" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "074c4ae82880d60a25048cd3bf2e8aaaa881922d7c73fbb9ec29fc67fa0d33e4" -dependencies = [ - "async-trait", - "bech32", - "bs58", - "chrono", - "iref", - "serde", - "serde_json", - "ssi-caips", - "ssi-crypto", - "ssi-dids", - "ssi-jwk", - "static-iref", -] - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid 0.9.5", - "crypto-common", - "subtle", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "dyn-clone" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd" - -[[package]] -name = "ecdsa" -version = "0.14.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" -dependencies = [ - "der 0.6.1", - "elliptic-curve 0.12.3", - "rfc6979 0.3.1", - "signature 1.6.4", -] - -[[package]] -name = "ecdsa" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" -dependencies = [ - "der 0.7.8", - "digest 0.10.7", - "elliptic-curve 0.13.6", - "rfc6979 0.4.0", - "signature 2.1.0", - "spki 0.7.2", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8 0.10.2", - "signature 2.1.0", -] - -[[package]] -name = "ed25519-dalek" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core 0.6.4", - "serde", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "elliptic-curve" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" -dependencies = [ - "base16ct 0.1.1", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest 0.10.7", - "ff 0.12.1", - "generic-array 0.14.7", - "group 0.12.1", - "rand_core 0.6.4", - "sec1 0.3.0", - "subtle", - "zeroize", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" -dependencies = [ - "base16ct 0.2.0", - "crypto-bigint 0.5.3", - "digest 0.10.7", - "ff 0.13.0", - "generic-array 0.14.7", - "group 0.13.0", - "pem-rfc7468 0.7.0", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "sec1 0.7.3", - "subtle", - "zeroize", -] - -[[package]] -name = "encoding_rs" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "env_logger" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" -dependencies = [ - "humantime", - "is-terminal", - "log 0.4.20", - "regex", - "termcolor", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" - -[[package]] -name = "fixed-hash" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding 2.3.0", -] - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "funty" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check 0.9.4", - "zeroize", -] - -[[package]] -name = "gethostname" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" -dependencies = [ - "libc", - "windows-targets", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "grdf" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9bbea22c05df8419a2bac76dcf144ef312c06de1db6f5d1304b1ce578890b00" -dependencies = [ - "derivative", - "hashbrown 0.13.2", - "iref", - "rdf-types", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" -dependencies = [ - "bytes 1.5.0", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 1.9.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.6", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash 0.8.3", -] - -[[package]] -name = "hashbrown" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" -dependencies = [ - "ahash 0.8.3", - "allocator-api2", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermetic-driver" -version = "0.1.0" -dependencies = [ - "anyhow", - "ceramic-tests-property", - "clap", - "env_logger", - "futures", - "k8s-openapi", - "keramik-operator", - "kube", - "log 0.4.20", - "serde", - "serde_yaml 0.8.26", - "tokio", -] - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "home" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes 1.5.0", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes 1.5.0", - "http", - "pin-project-lite", -] - -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes 1.5.0", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.9", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-old-types" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6896be51ecf3966c0fa14ff2da3233dbb9aef57ccea1be1afe55f105f4d4c9c4" -dependencies = [ - "base64 0.9.3", - "bytes 0.4.12", - "httparse", - "language-tags", - "log 0.4.20", - "mime 0.3.17", - "percent-encoding 1.0.1", - "time 0.1.45", - "unicase 2.7.0", -] - -[[package]] -name = "hyper-openssl" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ee5d7a8f718585d1c3c61dfde28ef5b0bb14734b4db13f5ada856cdc6c612b" -dependencies = [ - "http", - "hyper", - "linked_hash_set", - "once_cell", - "openssl", - "openssl-sys", - "parking_lot", - "tokio", - "tokio-openssl", - "tower-layer", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" -dependencies = [ - "futures-util", - "http", - "hyper", - "log 0.4.20", - "rustls", - "rustls-native-certs", - "tokio", - "tokio-rustls", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes 1.5.0", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg 1.1.0", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" -dependencies = [ - "equivalent", - "hashbrown 0.14.1", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "int-enum" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff87d3cc4b79b4559e3c75068d64247284aceb6a038bd4bb38387f3f164476d" -dependencies = [ - "int-enum-impl", -] - -[[package]] -name = "int-enum-impl" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1f2f068675add1a3fc77f5f5ab2e29290c841ee34d151abc007bce902e5d34" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "ipnet" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" - -[[package]] -name = "iref" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72758dab8e7c250a8643189063072ab0abf48e27eb453e0a38bbd2d7770ee8ec" -dependencies = [ - "hashbrown 0.13.2", - "pct-str", - "serde", - "smallvec", -] - -[[package]] -name = "iri-string" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0586ad318a04c73acdbad33f67969519b5452c80770c4c72059a686da48a7e" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi", - "rustix 0.38.19", - "windows-sys", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "json-ld" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e445d0986fc6a6e8bbe8b2c4ba0c847b7bebd201046cc37df645d632eb4202a" -dependencies = [ - "contextual", - "futures", - "json-ld-compaction", - "json-ld-context-processing", - "json-ld-core", - "json-ld-expansion", - "json-ld-syntax", - "json-syntax", - "locspan", - "rdf-types", - "thiserror", -] - -[[package]] -name = "json-ld-compaction" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd69243e6b268c66c9cdd6f1aab73bd0d4f6df617d53e8d77238b676a9ab01c3" -dependencies = [ - "contextual", - "derivative", - "futures", - "iref", - "json-ld-context-processing", - "json-ld-core", - "json-ld-expansion", - "json-ld-syntax", - "json-syntax", - "langtag", - "locspan", - "mown", - "rdf-types", - "thiserror", -] - -[[package]] -name = "json-ld-context-processing" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6162a8b000517178a4a23f546fa7fef31a0cac466393ef922a351d8e6041fb8f" -dependencies = [ - "contextual", - "futures", - "iref", - "json-ld-core", - "json-ld-syntax", - "locspan", - "mown", - "rdf-types", - "thiserror", -] - -[[package]] -name = "json-ld-core" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f103ff1c30bf42b3b7d09c69cbe12869e5ad42497638c5199d83de6fd7d7b13e" -dependencies = [ - "contextual", - "derivative", - "futures", - "hashbrown 0.13.2", - "iref", - "json-ld-syntax", - "json-syntax", - "langtag", - "locspan", - "locspan-derive", - "log 0.4.20", - "mime 0.3.17", - "mown", - "once_cell", - "permutohedron", - "pretty_dtoa", - "rdf-types", - "ryu-js", - "smallvec", - "static-iref", - "thiserror", -] - -[[package]] -name = "json-ld-expansion" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ec3b334e7ae66e64a139ac34f38d3559dd82e7a0deed8891d1897a933a006cc" -dependencies = [ - "contextual", - "derivative", - "futures", - "iref", - "json-ld-context-processing", - "json-ld-core", - "json-ld-syntax", - "json-syntax", - "langtag", - "locspan", - "mown", - "rdf-types", - "thiserror", -] - -[[package]] -name = "json-ld-syntax" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fe7e17ed956850ff813815c960dcf3ab80604d72a2590ddebf8112509fb3722" -dependencies = [ - "contextual", - "decoded-char", - "derivative", - "hashbrown 0.13.2", - "indexmap 1.9.3", - "iref", - "json-syntax", - "langtag", - "locspan", - "locspan-derive", - "rdf-types", - "smallvec", - "thiserror", -] - -[[package]] -name = "json-number" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280f53da10842ffc42737ac8a6f2c14ced71f950de1cdb6765264a2eb1100cc5" -dependencies = [ - "lexical", - "ryu-js", - "serde", - "smallvec", -] - -[[package]] -name = "json-patch" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6" -dependencies = [ - "serde", - "serde_json", - "thiserror", - "treediff", -] - -[[package]] -name = "json-syntax" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f2f4557e0fe320cc102bdebf9fa9471b8513e13bb34b5fc23d7e270c5f9b1cc" -dependencies = [ - "contextual", - "decoded-char", - "hashbrown 0.12.3", - "indexmap 1.9.3", - "json-number", - "locspan", - "locspan-derive", - "ryu-js", - "serde", - "smallstr", - "smallvec", -] - -[[package]] -name = "jsonpath_lib" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f" -dependencies = [ - "log 0.4.20", - "serde", - "serde_json", -] - -[[package]] -name = "k256" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" -dependencies = [ - "cfg-if", - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", - "sha2 0.10.8", - "sha3", -] - -[[package]] -name = "k256" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" -dependencies = [ - "cfg-if", - "ecdsa 0.16.8", - "elliptic-curve 0.13.6", - "once_cell", - "sha2 0.10.8", - "signature 2.1.0", -] - -[[package]] -name = "k8s-openapi" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc3606fd16aca7989db2f84bb25684d0270c6d6fa1dbcd0025af7b4130523a6" -dependencies = [ - "base64 0.21.4", - "bytes 1.5.0", - "chrono", - "schemars", - "serde", - "serde-value", - "serde_json", -] - -[[package]] -name = "keccak" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-hash" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae0386ec98c26dd721aaa3412bf3a817156ff3ee7cb6959503f8d1095f4ccc51" -dependencies = [ - "primitive-types", - "tiny-keccak", -] - -[[package]] -name = "keramik-common" -version = "0.1.0" -source = "git+https://github.com/3box/keramik.git?branch=main#4f870ec20398cf32c9cd56b7c3e51e5bae8b8510" -dependencies = [ - "anyhow", - "gethostname", - "schemars", - "serde", -] - -[[package]] -name = "keramik-operator" -version = "0.0.1" -source = "git+https://github.com/3box/keramik.git?branch=main#4f870ec20398cf32c9cd56b7c3e51e5bae8b8510" -dependencies = [ - "k8s-openapi", - "keramik-common", - "kube", - "rand 0.8.5", - "schemars", - "serde", - "serde_json", -] - -[[package]] -name = "kube" -version = "0.86.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8647c2211a9b480d910b155d573602c52cd5f646acecb06a03d594865dc4784" -dependencies = [ - "k8s-openapi", - "kube-client", - "kube-core", - "kube-derive", - "kube-runtime", -] - -[[package]] -name = "kube-client" -version = "0.86.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8952521f3e8ce11920229e5f2965fef70525aecd9efc7b65e39bf9e2c6f66d" -dependencies = [ - "base64 0.20.0", - "bytes 1.5.0", - "chrono", - "either", - "futures", - "home", - "http", - "http-body", - "hyper", - "hyper-openssl", - "hyper-rustls", - "hyper-timeout", - "jsonpath_lib", - "k8s-openapi", - "kube-core", - "openssl", - "pem", - "pin-project", - "rustls", - "rustls-pemfile", - "secrecy", - "serde", - "serde_json", - "serde_yaml 0.9.25", - "thiserror", - "tokio", - "tokio-util", - "tower", - "tower-http", - "tracing", -] - -[[package]] -name = "kube-core" -version = "0.86.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7608a0cd05dfa36167d2da982bb70f17feb5450f73ec601f6d428bbcf991c5b9" -dependencies = [ - "chrono", - "form_urlencoded", - "http", - "json-patch", - "k8s-openapi", - "once_cell", - "schemars", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "kube-derive" -version = "0.86.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8dd623cf49cd632da4727a70e05d9cb948d5ea1098a1af49b1fd3bc9ec60b3c" -dependencies = [ - "darling 0.14.4", - "proc-macro2", - "quote", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "kube-runtime" -version = "0.86.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde2bd0b2d248be72f30c658b728f87e84c68495bec2c689dff7a3479eb29afd" -dependencies = [ - "ahash 0.8.3", - "async-trait", - "backoff", - "derivative", - "futures", - "hashbrown 0.14.1", - "json-patch", - "k8s-openapi", - "kube-client", - "parking_lot", - "pin-project", - "serde", - "serde_json", - "smallvec", - "thiserror", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log 0.4.20", -] - -[[package]] -name = "langtag" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed60c85f254d6ae8450cec15eedd921efbc4d1bdf6fcf6202b9a58b403f6f805" - -[[package]] -name = "language-tags" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] - -[[package]] -name = "lexical" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" -dependencies = [ - "lexical-core", -] - -[[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "lexical-write-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", -] - -[[package]] -name = "lexical-write-integer" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "libc" -version = "0.2.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" - -[[package]] -name = "libipld" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9c3aa309c260aa2f174bac968901eddc546e9d85950c28eae6a7bec402f926" -dependencies = [ - "async-trait", - "cached", - "fnv", - "libipld-cbor", - "libipld-cbor-derive", - "libipld-core", - "libipld-json", - "libipld-macro", - "log 0.4.20", - "multihash 0.16.3", - "parking_lot", - "thiserror", -] - -[[package]] -name = "libipld-cbor" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd1ab68c9d26f20c7d0dfea6eecbae8c00359875210001b33ca27d4a02f3d09" -dependencies = [ - "byteorder", - "libipld-core", - "thiserror", -] - -[[package]] -name = "libipld-cbor-derive" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ec2f49393a1347a2d95ebcb248ff75d0d47235919b678036c010a8cd927375" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "libipld-core" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44790246ec6b7314cba745992c23d479d018073e66d49ae40ae1b64e5dd8eb5" -dependencies = [ - "anyhow", - "cid 0.8.6", - "core2", - "multibase 0.9.1", - "multihash 0.16.3", - "serde", - "thiserror", -] - -[[package]] -name = "libipld-json" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18aa481a87f084d98473dd9ece253a9569c762b75f6bbba8217d54e48c9d63b3" -dependencies = [ - "libipld-core", - "multihash 0.16.3", - "serde", - "serde_json", -] - -[[package]] -name = "libipld-macro" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852c011562ae5059b67c3a917f9f5945af5a68df8e39ede4444fff33274d25e2" -dependencies = [ - "libipld-core", -] - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libp2p-identity" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" -dependencies = [ - "bs58", - "ed25519-dalek", - "log 0.4.20", - "multiaddr", - "multihash 0.17.0", - "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "zeroize", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linked_hash_set" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" - -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg 1.1.0", - "scopeguard", -] - -[[package]] -name = "locspan" -version = "0.7.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb541fabac50f90782ec4fafa7b0b3961adc0d1862c7c7a863dc94ed5541d73" -dependencies = [ - "contextual", - "hashbrown 0.13.2", -] - -[[package]] -name = "locspan-derive" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88991223b049a3d29ca1f60c05639581336a0f3ee4bf8a659dddecc11c4961a" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "log" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -dependencies = [ - "log 0.4.20", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -dependencies = [ - "value-bag", -] - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "mime" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" -dependencies = [ - "log 0.3.9", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "1.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3" -dependencies = [ - "mime 0.2.6", - "phf", - "phf_codegen", - "unicase 1.4.2", -] - -[[package]] -name = "minicbor" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7005aaf257a59ff4de471a9d5538ec868a21586534fff7f85dd97d4043a6139" -dependencies = [ - "minicbor-derive", -] - -[[package]] -name = "minicbor-derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1154809406efdb7982841adb6311b3d095b46f78342dd646736122fe6b19e267" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", -] - -[[package]] -name = "mown" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7627d8bbeb17edbf1c3f74b21488e4af680040da89713b4217d0010e9cbd97e" - -[[package]] -name = "multiaddr" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "log 0.4.20", - "multibase 0.9.1", - "multihash 0.17.0", - "percent-encoding 2.3.0", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - -[[package]] -name = "multibase" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" -dependencies = [ - "blake2b_simd 1.0.2", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "serde", - "serde-big-array", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" -dependencies = [ - "blake2b_simd 1.0.2", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive", - "serde", - "serde-big-array", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" -dependencies = [ - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "multipart" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136eed74cadb9edd2651ffba732b19a450316b680e4f48d6c79e905799e19d01" -dependencies = [ - "buf_redux", - "httparse", - "log 0.4.20", - "mime 0.2.6", - "mime_guess", - "quick-error", - "rand 0.6.5", - "safemem", - "tempfile", - "twoway", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log 0.4.20", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg 1.1.0", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg 1.1.0", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg 1.1.0", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openssl" -version = "0.10.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" -dependencies = [ - "bitflags 2.4.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" -dependencies = [ - "num-traits", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa 0.16.8", - "elliptic-curve 0.13.6", - "primeorder", - "sha2 0.10.8", -] - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.4.1", - "smallvec", - "windows-targets", -] - -[[package]] -name = "pct-str" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d207ec8d182c2fef45f028b9b9507770df19e89b3e14827ccd95d4a23f6003" -dependencies = [ - "utf8-decode", -] - -[[package]] -name = "pem" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923" -dependencies = [ - "base64 0.21.4", - "serde", -] - -[[package]] -name = "pem-rfc7468" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30" -dependencies = [ - "base64ct", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "permutohedron" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b687ff7b5da449d39e418ad391e5e08da53ec334903ddbb921db208908fc372c" - -[[package]] -name = "phf" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" -dependencies = [ - "phf_shared", - "rand 0.6.5", -] - -[[package]] -name = "phf_shared" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -dependencies = [ - "siphasher", - "unicase 1.4.2", -] - -[[package]] -name = "pin-project" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" -dependencies = [ - "atomic-waker", - "fastrand 2.0.1", - "futures-io", -] - -[[package]] -name = "pkcs1" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320" -dependencies = [ - "der 0.5.1", - "pkcs8 0.8.0", - "zeroize", -] - -[[package]] -name = "pkcs8" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" -dependencies = [ - "der 0.5.1", - "spki 0.5.4", - "zeroize", -] - -[[package]] -name = "pkcs8" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" -dependencies = [ - "der 0.6.1", - "spki 0.6.0", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der 0.7.8", - "spki 0.7.2", -] - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "platforms" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg 1.1.0", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log 0.4.20", - "pin-project-lite", - "windows-sys", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "pretty_dtoa" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a239bcdfda2c685fda1add3b4695c06225f50075e3cfb5b954e91545587edff2" -dependencies = [ - "ryu_floating_decimal", -] - -[[package]] -name = "primeorder" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" -dependencies = [ - "elliptic-curve 0.13.6", -] - -[[package]] -name = "primitive-types" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0e" -dependencies = [ - "fixed-hash", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check 0.9.4", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check 0.9.4", -] - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quick-protobuf" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" -dependencies = [ - "byteorder", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" - -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.8", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg", - "rand_xorshift", - "winapi", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.3.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi", -] - -[[package]] -name = "rand_os" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -dependencies = [ - "cloudabi", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.4.2", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rdf-types" -version = "0.12.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d95f82a1f30f2d62e77b775ef4863f67ffafef1fc2c95ebfb55f3750be55df" -dependencies = [ - "contextual", - "iref", - "langtag", - "locspan", - "locspan-derive", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "regex" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "reqwest" -version = "0.11.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" -dependencies = [ - "base64 0.21.4", - "bytes 1.5.0", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-tls", - "ipnet", - "js-sys", - "log 0.4.20", - "mime 0.3.17", - "native-tls", - "once_cell", - "percent-encoding 2.3.0", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "system-configuration", - "tokio", - "tokio-native-tls", - "tokio-rustls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg", -] - -[[package]] -name = "rfc6979" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" -dependencies = [ - "crypto-bigint 0.4.9", - "hmac", - "zeroize", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", + "chrono", + "form_urlencoded", + "http", + "json-patch", + "k8s-openapi", "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "ripemd160" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "rsa" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b" -dependencies = [ - "byteorder", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-iter", - "num-traits", - "pkcs1", - "pkcs8 0.8.0", - "rand_core 0.6.4", - "smallvec", - "subtle", - "zeroize", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys", -] - -[[package]] -name = "rustix" -version = "0.38.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" -dependencies = [ - "bitflags 2.4.1", - "errno", - "libc", - "linux-raw-sys 0.4.10", - "windows-sys", -] - -[[package]] -name = "rustls" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" -dependencies = [ - "log 0.4.20", - "ring", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" -dependencies = [ - "base64 0.21.4", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "ryu-js" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f" - -[[package]] -name = "ryu_floating_decimal" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "700de91d5fd6091442d00fdd9ee790af6d4f0f480562b0f5a1e8f59e90aafe73" - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - -[[package]] -name = "schannel" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "schemars" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" -dependencies = [ - "dyn-clone", - "schemars_derive", + "schemars", "serde", "serde_json", + "thiserror", ] [[package]] -name = "schemars_derive" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 1.0.109", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sec1" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" -dependencies = [ - "base16ct 0.1.1", - "der 0.6.1", - "generic-array 0.14.7", - "pkcs8 0.9.0", - "subtle", - "zeroize", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct 0.2.0", - "der 0.7.8", - "generic-array 0.14.7", - "pkcs8 0.10.2", - "subtle", - "zeroize", -] - -[[package]] -name = "secrecy" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" -dependencies = [ - "serde", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "serde" -version = "1.0.189" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-big-array" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd31f59f6fe2b0c055371bb2f16d7f0aa7d8881676c04a55b1596d1a17cd10a4" -dependencies = [ - "serde", -] - -[[package]] -name = "serde-value" -version = "0.7.0" +name = "kube-derive" +version = "0.86.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +checksum = "a8dd623cf49cd632da4727a70e05d9cb948d5ea1098a1af49b1fd3bc9ec60b3c" dependencies = [ - "ordered-float", - "serde", + "darling", + "proc-macro2", + "quote", + "serde_json", + "syn 1.0.109", ] [[package]] -name = "serde_bytes" -version = "0.11.12" +name = "kube-runtime" +version = "0.86.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "fde2bd0b2d248be72f30c658b728f87e84c68495bec2c689dff7a3479eb29afd" dependencies = [ + "ahash", + "async-trait", + "backoff", + "derivative", + "futures", + "hashbrown 0.14.1", + "json-patch", + "k8s-openapi", + "kube-client", + "parking_lot", + "pin-project", "serde", + "serde_json", + "smallvec", + "thiserror", + "tokio", + "tokio-util", + "tracing", ] [[package]] -name = "serde_derive" -version = "1.0.189" +name = "libc" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] -name = "serde_derive_internals" -version = "0.26.0" +name = "linked-hash-map" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] -name = "serde_ignored" -version = "0.1.9" +name = "linked_hash_set" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c31d5c53fd39f208e770f5a20a0bb214dee2a8d0d8adba18e19ad95a482ca5" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" dependencies = [ - "serde", + "linked-hash-map", ] [[package]] -name = "serde_ipld_dagcbor" -version = "0.3.0" +name = "linux-raw-sys" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2433e94ffb5977e67afbd75733abd6ada1c4f497125894a8c89b3fdc5fd6a058" -dependencies = [ - "cbor4ii", - "cid 0.8.6", - "scopeguard", - "serde", -] +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] -name = "serde_jcs" -version = "0.1.0" +name = "lock_api" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cacecf649bc1a7c5f0e299cc813977c6a78116abda2b93b1ee01735b71ead9a8" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ - "ryu-js", - "serde", - "serde_json", + "autocfg", + "scopeguard", ] [[package]] -name = "serde_json" -version = "1.0.107" +name = "log" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" -dependencies = [ - "indexmap 2.0.2", - "itoa", - "ryu", - "serde", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "memchr" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] -name = "serde_with" -version = "1.14.0" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" -dependencies = [ - "base64 0.13.1", - "serde", - "serde_with_macros 1.5.2", -] +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "serde_with" -version = "2.3.3" +name = "miniz_oxide" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ - "base64 0.13.1", - "chrono", - "hex", - "indexmap 1.9.3", - "serde", - "serde_json", - "serde_with_macros 2.3.3", - "time 0.3.30", + "adler", ] [[package]] -name = "serde_with_macros" -version = "1.5.2" +name = "mio" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", + "libc", + "wasi", + "windows-sys", ] [[package]] -name = "serde_with_macros" -version = "2.3.3" +name = "num-traits" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ - "darling 0.20.3", - "proc-macro2", - "quote", - "syn 2.0.38", + "autocfg", ] [[package]] -name = "serde_yaml" -version = "0.8.26" +name = "num_cpus" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "indexmap 1.9.3", - "ryu", - "serde", - "yaml-rust", + "hermit-abi", + "libc", ] [[package]] -name = "serde_yaml" -version = "0.9.25" +name = "object" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ - "indexmap 2.0.2", - "itoa", - "ryu", - "serde", - "unsafe-libyaml", + "memchr", ] [[package]] -name = "sha2" -version = "0.8.2" +name = "once_cell" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] -name = "sha2" -version = "0.9.9" +name = "openssl" +version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "block-buffer 0.9.0", + "bitflags 2.4.1", "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", ] [[package]] -name = "sha2" -version = "0.10.8" +name = "openssl-macros" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", + "proc-macro2", + "quote", + "syn 2.0.38", ] [[package]] -name = "sha3" -version = "0.10.8" +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ - "digest 0.10.7", - "keccak", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] -name = "signal-hook-registry" -version = "1.4.1" +name = "ordered-float" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ - "libc", + "num-traits", ] [[package]] -name = "signature" -version = "1.6.4" +name = "parking_lot" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", + "lock_api", + "parking_lot_core", ] [[package]] -name = "signature" -version = "2.1.0" +name = "parking_lot_core" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", ] [[package]] -name = "simple_asn1" -version = "0.5.4" +name = "pem" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" +checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923" dependencies = [ - "chrono", - "num-bigint", - "num-traits", - "thiserror", + "base64 0.21.4", + "serde", ] [[package]] -name = "siphasher" -version = "0.2.3" +name = "percent-encoding" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] -name = "siwe" -version = "0.5.2" +name = "pin-project" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e6d1f422a568af1e98db37c6d0427c7218459ccac39218fd15a51a34d3933af" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ - "hex", - "http", - "iri-string", - "k256 0.11.6", - "rand 0.8.5", - "sha3", - "thiserror", - "time 0.3.30", + "pin-project-internal", ] [[package]] -name = "siwe-recap" -version = "0.1.0" +name = "pin-project-internal" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe6254970fe99274b440ba4c5e9891550939e7a3c10274029b2e8a9ab2d5c8b" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "base64 0.12.3", - "iri-string", - "serde", - "serde_json", - "siwe", - "thiserror", + "proc-macro2", + "quote", + "syn 2.0.38", ] [[package]] -name = "slab" -version = "0.4.9" +name = "pin-project-lite" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg 1.1.0", -] +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] -name = "slog" -version = "2.7.0" +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "smallstr" -version = "0.3.0" +name = "pkg-config" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b1aefdf380735ff8ded0b15f31aab05daf1f70216c01c02a12926badd1df9d" -dependencies = [ - "smallvec", -] +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] -name = "smallvec" -version = "1.11.1" +name = "proc-macro2" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] [[package]] -name = "socket2" -version = "0.4.9" +name = "quote" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ - "libc", - "winapi", + "proc-macro2", ] [[package]] -name = "socket2" -version = "0.5.4" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "windows-sys", + "rand_chacha", + "rand_core", ] [[package]] -name = "spin" -version = "0.5.2" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] [[package]] -name = "spki" -version = "0.5.4" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "base64ct", - "der 0.5.1", + "getrandom", ] [[package]] -name = "spki" -version = "0.6.0" +name = "redox_syscall" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "base64ct", - "der 0.6.1", + "bitflags 1.3.2", ] [[package]] -name = "spki" -version = "0.7.2" +name = "regex" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ - "base64ct", - "der 0.7.8", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] -name = "sshkeys" -version = "0.3.2" +name = "regex-automata" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926cb006a77964474a13a86aa0135ea82c9fd43e6793a1151cc54143db6637c" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ - "base64 0.12.3", - "byteorder", - "sha2 0.8.2", + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] -name = "ssi" -version = "0.7.0" +name = "regex-syntax" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d6e7ea685d83ca9683a0c7876c6b99196049d000dc22dfabb1398603b935e56" -dependencies = [ - "ssi-caips", - "ssi-core", - "ssi-crypto", - "ssi-dids", - "ssi-json-ld", - "ssi-jwk", - "ssi-jws", - "ssi-jwt", - "ssi-ldp", - "ssi-ssh", - "ssi-tzkey", - "ssi-ucan", - "ssi-vc", - "ssi-zcap-ld", -] +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] -name = "ssi-caips" -version = "0.1.0" +name = "ring" +version = "0.16.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2c479690955bebece0279a5b1ab9d7d584402caed9f56ecec346d0bc63661f" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ - "bs58", - "ssi-jwk", - "thiserror", + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", ] [[package]] -name = "ssi-contexts" -version = "0.1.5" +name = "rustc-demangle" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3009b82cbae3d88a76f15460fb5fb3f30a1673eb0359ac6917ffaa3c57f7164" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] -name = "ssi-core" -version = "0.1.0" +name = "rustix" +version = "0.38.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e43f42016b80dc3e5eae8f7d2b22db3debbfe97b38e4fa449433497b3513048" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" dependencies = [ - "async-trait", - "serde", - "thiserror", + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", ] [[package]] -name = "ssi-crypto" -version = "0.1.1" +name = "rustls" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c511fdba8466006f4de1086fee5f38fd220eac5eeaf0270dbfde3e9d538030e7" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ - "bs58", - "digest 0.9.0", - "k256 0.13.1", - "keccak-hash", - "ripemd160", - "sha2 0.10.8", - "thiserror", - "zeroize", + "log", + "ring", + "rustls-webpki", + "sct", ] [[package]] -name = "ssi-dids" -version = "0.1.1" +name = "rustls-native-certs" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e3c375b0fb2129c691e65e776c9105290ade34b56f39755f4f9c40ba98e41c" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ - "anyhow", - "async-trait", - "bs58", - "chrono", - "derive_builder", - "hex", - "iref", - "multibase 0.8.0", - "serde", - "serde_json", - "serde_urlencoded", - "ssi-caips", - "ssi-core", - "ssi-json-ld", - "ssi-jwk", - "static-iref", - "thiserror", + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", ] [[package]] -name = "ssi-json-ld" -version = "0.2.2" +name = "rustls-pemfile" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50912984a4f415dd419853d461938b2daaa428dcafb8a5dfcde8dc07371371da" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "async-std", - "combination", - "futures", - "grdf", - "iref", - "json-ld", - "json-syntax", - "lazy_static", - "locspan", - "rdf-types", - "ssi-contexts", - "ssi-crypto", - "static-iref", - "thiserror", + "base64 0.21.4", ] [[package]] -name = "ssi-jwk" -version = "0.1.2" +name = "rustls-webpki" +version = "0.101.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2d7b2b056993e04945eade2b0bbd3049f1bb65cd2fcf661ccb15b615683b384" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" dependencies = [ - "base64 0.12.3", - "blake2b_simd 0.5.11", - "bs58", - "ed25519-dalek", - "getrandom", - "k256 0.13.1", - "lazy_static", - "multibase 0.9.1", - "num-bigint", - "num-derive", - "num-traits", - "p256", - "rand 0.8.5", - "rsa", - "serde", - "simple_asn1", - "ssi-crypto", - "thiserror", - "unsigned-varint", - "zeroize", + "ring", + "untrusted", ] [[package]] -name = "ssi-jws" -version = "0.1.1" +name = "ryu" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d30d8f88b2bd2f13fb0a2f8de75ad44f5062e876311ea231d64ecd0f422b50df" -dependencies = [ - "base64 0.12.3", - "blake2", - "clear_on_drop", - "ed25519-dalek", - "k256 0.13.1", - "p256", - "rand 0.8.5", - "rsa", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "ssi-crypto", - "ssi-jwk", - "thiserror", -] +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] -name = "ssi-jwt" -version = "0.1.1" +name = "schannel" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46522391b37f4b749911bb29b3960a7e2e0b9936c7debf52035f431480b40123" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "chrono", - "serde", - "serde_json", - "serde_with 2.3.3", - "ssi-jwk", - "ssi-jws", - "thiserror", + "windows-sys", ] [[package]] -name = "ssi-ldp" -version = "0.3.2" +name = "schemars" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae2987783f69dc6a8634d387eb3f8cfce81eff67b8710971f9c4535023afb" +checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" dependencies = [ - "async-trait", - "bs58", - "chrono", - "grdf", - "hex", - "iref", - "json-syntax", - "k256 0.13.1", - "keccak-hash", - "lazy_static", - "locspan", - "multibase 0.8.0", - "p256", - "rdf-types", + "dyn-clone", + "schemars_derive", "serde", - "serde_jcs", "serde_json", - "sha2 0.10.8", - "sha3", - "ssi-caips", - "ssi-contexts", - "ssi-core", - "ssi-crypto", - "ssi-dids", - "ssi-json-ld", - "ssi-jwk", - "ssi-jws", - "ssi-tzkey", - "static-iref", - "thiserror", ] [[package]] -name = "ssi-ssh" -version = "0.1.0" +name = "schemars_derive" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22967c7882e2457a2813badebf613a1b6ea3240f77ccac5c7c03858806d56618" +checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" dependencies = [ - "sshkeys", - "ssi-jwk", - "thiserror", + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", ] [[package]] -name = "ssi-tzkey" -version = "0.1.1" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe876a9fa30749b1140be05099d969c7a009b6e809d3f5b191536016a7fd480b" -dependencies = [ - "bs58", - "ed25519-dalek", - "ssi-jwk", - "ssi-jws", - "thiserror", -] +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "ssi-ucan" -version = "0.1.1" +name = "sct" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0982f62c7860922026a9d9edc6c604de79693ee4c5c6bd65be11e2ff66b1df09" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "base64 0.12.3", - "chrono", - "libipld", - "serde", - "serde_json", - "serde_with 1.14.0", - "ssi-caips", - "ssi-core", - "ssi-dids", - "ssi-jwk", - "ssi-jws", - "ssi-jwt", - "thiserror", + "ring", + "untrusted", ] [[package]] -name = "ssi-vc" -version = "0.2.0" +name = "secrecy" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e7a8fdaad27ffd172183d6bd605cd77c28c5378e8184a462ebc8df8c06f212" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" dependencies = [ - "async-trait", - "base64 0.12.3", - "bitvec", - "cacaos", - "chrono", - "flate2", - "iref", - "libipld", - "multihash 0.16.3", - "reqwest", "serde", - "serde_json", - "siwe-recap", - "ssi-core", - "ssi-dids", - "ssi-json-ld", - "ssi-jwk", - "ssi-jws", - "ssi-jwt", - "ssi-ldp", - "thiserror", + "zeroize", ] [[package]] -name = "ssi-zcap-ld" -version = "0.1.2" +name = "security-framework" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8380152589e8876e91bb765ce1b363909bc071788c1550bfdb730152c5b7afe" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "async-trait", - "iref", - "serde", - "serde_json", - "ssi-core", - "ssi-dids", - "ssi-json-ld", - "ssi-jwk", - "ssi-ldp", - "thiserror", + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", ] [[package]] -name = "static-iref" -version = "2.0.0" +name = "security-framework-sys" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9786d4b8e9e5423fe85c57a826d7e0f0774746149a2ccd21e2104ff74b71ce7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ - "iref", + "core-foundation-sys", + "libc", ] [[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "swagger" -version = "6.4.1" +name = "serde" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c24057cf0e1c1a88fb2a12d19fe6e7ea6a24b74775352224a9718a8e9eb43" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" dependencies = [ - "base64 0.13.1", - "futures", - "hyper", - "hyper-old-types", - "hyper-openssl", - "hyper-tls", - "mime 0.3.17", - "native-tls", - "openssl", - "serde", - "serde_json", - "slog", - "uuid", + "serde_derive", ] [[package]] -name = "syn" -version = "1.0.109" +name = "serde-value" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "ordered-float", + "serde", ] [[package]] -name = "syn" -version = "2.0.38" +name = "serde_derive" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" dependencies = [ "proc-macro2", "quote", - "unicode-ident", + "syn 2.0.38", ] [[package]] -name = "synstructure" -version = "0.12.6" +name = "serde_derive_internals" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "unicode-xid", ] [[package]] -name = "system-configuration" -version = "0.5.1" +name = "serde_json" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", + "indexmap 2.0.2", + "itoa", + "ryu", + "serde", ] [[package]] -name = "system-configuration-sys" -version = "0.5.0" +name = "serde_yaml" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ - "core-foundation-sys", - "libc", + "indexmap 1.9.3", + "ryu", + "serde", + "yaml-rust", ] [[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.8.0" +name = "serde_yaml" +version = "0.9.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" dependencies = [ - "cfg-if", - "fastrand 2.0.1", - "redox_syscall 0.3.5", - "rustix 0.38.19", - "windows-sys", + "indexmap 2.0.2", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", ] [[package]] -name = "termcolor" -version = "1.3.0" +name = "signal-hook-registry" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ - "winapi-util", + "libc", ] [[package]] -name = "test-log" -version = "0.2.13" +name = "slab" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66edd6b6cd810743c0c71e1d085e92b01ce6a72782032e3f794c8284fe4bcdd" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", + "autocfg", ] [[package]] -name = "thiserror" -version = "1.0.49" +name = "smallvec" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" -dependencies = [ - "thiserror-impl", -] +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] -name = "thiserror-impl" -version = "1.0.49" +name = "socket2" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", + "libc", + "winapi", ] [[package]] -name = "time" -version = "0.1.45" +name = "socket2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" dependencies = [ "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "windows-sys", ] [[package]] -name = "time" -version = "0.3.30" +name = "spin" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" -dependencies = [ - "deranged", - "itoa", - "powerfmt", - "serde", - "time-core", - "time-macros", -] +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] -name = "time-core" -version = "0.1.2" +name = "strsim" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] -name = "time-macros" -version = "0.2.15" +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ - "time-core", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "termcolor" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ - "crunchy", + "winapi-util", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "thiserror" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ - "tinyvec_macros", + "thiserror-impl", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "thiserror-impl" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] [[package]] name = "tokio" @@ -5124,7 +1627,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" dependencies = [ "backtrace", - "bytes 1.5.0", "libc", "mio", "num_cpus", @@ -5156,16 +1658,6 @@ dependencies = [ "syn 2.0.38", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-openssl" version = "0.6.3" @@ -5194,7 +1686,7 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-core", "futures-sink", "pin-project-lite", @@ -5203,23 +1695,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.0.2", - "toml_datetime", - "winnow", -] - [[package]] name = "tower" version = "0.4.13" @@ -5245,13 +1720,13 @@ checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ "base64 0.21.4", "bitflags 2.4.1", - "bytes 1.5.0", + "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "mime 0.3.17", + "mime", "pin-project-lite", "tower-layer", "tower-service", @@ -5276,7 +1751,7 @@ version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" dependencies = [ - "log 0.4.20", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -5317,159 +1792,42 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" -[[package]] -name = "twoway" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" -dependencies = [ - "memchr", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unicase" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -dependencies = [ - "version_check 0.1.5", -] - -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check 0.9.4", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - [[package]] name = "unsafe-libyaml" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - [[package]] name = "untrusted" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" -[[package]] -name = "url" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding 2.3.0", -] - -[[package]] -name = "utf8-decode" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca61eb27fa339aa08826a29f03e87b99b4d8f0fc2255306fd266bb1b6a9de498" - [[package]] name = "utf8parse" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - -[[package]] -name = "value-bag" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" - [[package]] name = "vcpkg" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "version_check" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" - [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - [[package]] name = "want" version = "0.3.1" @@ -5479,12 +1837,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -5508,7 +1860,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", - "log 0.4.20", + "log", "once_cell", "proc-macro2", "quote", @@ -5516,18 +1868,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.87" @@ -5567,12 +1907,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" - [[package]] name = "winapi" version = "0.3.9" @@ -5679,31 +2013,6 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" -[[package]] -name = "winnow" -version = "0.5.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys", -] - -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - [[package]] name = "yaml-rust" version = "0.4.5" @@ -5718,17 +2027,3 @@ name = "zeroize" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] diff --git a/Cargo.toml b/Cargo.toml index 257e3ecb..cdd92e54 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,9 @@ [workspace] resolver = "2" -members = ["property", "hermetic"] +members = ["hermetic"] [workspace.dependencies] ceramic-tests-hermetic-driver = { path = "./hermetic/" } -ceramic-tests-property = { path = "./property/" } [workspace.package] version = "0.1.0" diff --git a/Makefile b/Makefile index 11b294b6..f74eebc6 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ BUILD_PROFILE ?= release # Unique identifier for builds and tags. BUILD_TAG ?= dev-run # Path to network to test against. -TEST_NETWORK ?= ./networks/basic-go-rust.yaml +TEST_NETWORK ?= ./networks/basic-rust.yaml # Path to performance simulation. TEST_SIMULATION ?= ./simulations/basic-simulation.yaml # Name for the test suite image, without any tag @@ -46,15 +46,7 @@ PNPM = pnpm all: check-fmt check-clippy test .PHONY: build -build: release driver suite - -.PHONY: release -release: - ./ci-scripts/build-test-binaries.sh release - -.PHONY: dev -dev: - ./ci-scripts/build-test-binaries.sh dev +build: driver suite .PHONY: test test: @@ -91,16 +83,11 @@ build-suite: publish-suite: BUILD_PROFILE=${BUILD_PROFILE} IMAGE_NAME=${TEST_SUITE_IMAGE_NAME} ./ci-scripts/publish_suite.sh ${BUILD_TAG} -# TODO Remove this target when the flavors are refactored away -.PHONY: publish-tests-property -publish-tests-property: - BUILD_PROFILE=${BUILD_PROFILE} ./ci-scripts/publish_property.sh ${BUILD_TAG} - .PHONY: hermetic-tests hermetic-tests: ${HERMETIC_CMD} test \ --network "${TEST_NETWORK}" \ - --flavor smoke \ + --flavor correctness \ --suffix "${HERMETIC_SUFFIX}" \ --network-ttl ${HERMETIC_TTL} \ --test-image "${TEST_SUITE_IMAGE}" \ @@ -122,16 +109,3 @@ durable-tests: .PHONY: schedule-durable-tests schedule-durable-tests: BUILD_TAG="${BUILD_TAG}" TEST_BRANCH="${DURABLE_TEST_BRANCH}" ./ci-scripts/schedule_durable_tests.sh "${DURABLE_ENV}" "${TEST_SELECTOR}" - -# TODO Remove this target: -# Remove flavor concept from driver. -# We should have a single test suite with different kinds of tests -# within the suite. -.PHONY: prop-test -prop-test: - # Run tests using BUILD_TAG image - ${HERMETIC_CMD} test \ - --network "${TEST_NETWORK}" \ - --flavor prop \ - --suffix "${BUILD_TAG}" \ - --test-image public.ecr.aws/r5b3e0r5/3box/ceramic-tests-property:${BUILD_TAG} diff --git a/README.md b/README.md index baa843c1..cfed7f48 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This repo contains an end-to-end test suite for the [Ceramic Network](https://gi ## Design -This crate provides three entities: +This repo provides three entities: * A test suite of end-to-end tests. * A hermetic test driver, which runs the test suite against isolated infrastructure. @@ -26,22 +26,20 @@ Testing against durable infrastructure allows for better coverage of real world ## Flavors -> Flavors are deprecated and will be removed in favor of a single test suite and multiple drivers design. - There are several test flavors: -* Property based tests -* Smoke tests +* Correctness tests +* Performance tests -More will be added over time. +More will be added as needed. -The property based tests, test a specific property of a network (i.e. writes can be read). +The correctness tests, test a specific property of a network (i.e. writes can be read). These tests do not assume any network topology. -Property tests live in this repo as Rust integration tests, see the `/property/tests` directory. +Property tests live in this repo in the `/suite` directory. -The smoke tests, test specific behaviors of a network end to end. +The performance tests, test at scale. These tests do not assume any network topology. -Smoke tests live outside of this repo. +Performance tests live outside of this repo. ## Prerequisites @@ -143,9 +141,9 @@ To tear down all the pods created by running the tests, you can delete the netwo > kubectl get networks # Look up the network name NAME AGE - smoke-basic-go-rust-dev-run 33m + basic-rust-dev-run 33m - > kubectl delete network smoke-basic-go-rust-dev-run # delete the network and all pods within it. + > kubectl delete network basic-rust-dev-run # delete the network and all pods within it. ## Contributing diff --git a/ci-scripts/build-test-binaries.sh b/ci-scripts/build-test-binaries.sh deleted file mode 100755 index f4f6978d..00000000 --- a/ci-scripts/build-test-binaries.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -# Exit if any command in any pipe fails. -# This is needed to catch compilation errors. -set -e -set -o pipefail - -BUILD_PROFILE=${1-dev} -if [ -z $BUILD_PROFILE ] -then - echo "Must pass build profile arg" - exit 1 -fi -rm -rf test-binaries/ -mkdir test-binaries - -temp=$(mktemp) -RUSTFLAGS='-D warnings' cargo test -p ceramic-tests-property \ - --no-run \ - --locked \ - --profile $BUILD_PROFILE \ - -q \ - --message-format=json > $temp - -# Copy only binaries built for integration tests -for b in $(cat $temp | jq -r 'select(.target.kind != null) | - select(.target.kind | contains(["test"])) | - select( .executable != null) | - .executable') -do - echo $b - cp $b test-binaries/ -done - -rm $temp diff --git a/ci-scripts/extract_docker_mount_cache.sh b/ci-scripts/extract_docker_mount_cache.sh deleted file mode 100755 index f41f9cf6..00000000 --- a/ci-scripts/extract_docker_mount_cache.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# -# Copy mounted cache data out of docker so it can be cached via Github actions - -cat > Dockerfile << 'EOF' -FROM busybox:1 -ARG UID=1001 -ARG GID=1001 -# This mount command must be identical to the mount command in the real Dockerfile -# in order to reuse the same mount cache. -RUN --mount=type=cache,target=/home/builder/.cargo,uid=$UID,gid=$GID \ - --mount=type=cache,target=/home/builder/ceramic-tests/target,uid=$UID,gid=$GID \ - mkdir -p /var/cache/ && \ - tar -cf /var/cache/cache.tar -C /home/builder .cargo ceramic-tests/target -EOF - -docker buildx build --tag cache:extract --load --progress plain . -docker rm -f cache-container -docker create --name cache-container cache:extract -docker cp cache-container:/var/cache/cache.tar ./cache.tar - -rm Dockerfile diff --git a/ci-scripts/inject_docker_mount_cache.sh b/ci-scripts/inject_docker_mount_cache.sh deleted file mode 100755 index cf0e0951..00000000 --- a/ci-scripts/inject_docker_mount_cache.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# -# Copy cache data into docker mount cache - -if [ ! -f cache.tar ] -then - echo "No cache found skipping" - exit 0 -fi - - -cat > Dockerfile << 'EOF' -FROM busybox:1 - -RUN mkdir -p /var/cache/ -COPY ./cache.tar /var/cache/ - -ARG UID=1001 -ARG GID=1001 -# This mount command must be identical to the mount command in the real Dockerfile -# in order to reuse the same mount cache. -RUN --mount=type=cache,target=/home/builder/.cargo,uid=$UID,gid=$GID \ - --mount=type=cache,target=/home/builder/ceramic-tests/target,uid=$UID,gid=$GID \ - tar -xpf /var/cache/cache.tar -C /home/builder -EOF - -docker buildx build --tag cache:inject --load --progress plain . -rm Dockerfile diff --git a/ci-scripts/publish_property.sh b/ci-scripts/publish_property.sh deleted file mode 100755 index 5becb271..00000000 --- a/ci-scripts/publish_property.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Build and publish a docker image to run the tests suite -# -# DOCKER_PASSWORD must be set -# Use: -# -# export DOCKER_PASSWORD=$(aws ecr-public get-login-password --region us-east-1) -# echo "${DOCKER_PASSWORD}" | docker login --username AWS --password-stdin public.ecr.aws/r5b3e0r5 -# -# to login to docker. That password will be valid for 12h. - -tag=${1-latest} -BUILD_PROFILE=${BUILD_PROFILE-release} -IMAGE_NAME=${IMAGE_NAME-public.ecr.aws/r5b3e0r5/3box/ceramic-tests-property} - -CACHE_ARGS="" -if [ -n "$ACTIONS_CACHE_URL" ] -then - # Use Github Actions cache - CACHE_ARGS="--cache-to type=gha --cache-from type=gha" -fi - -docker buildx build \ - --push \ - $CACHE_ARGS \ - --build-arg BUILD_PROFILE=${BUILD_PROFILE} \ - -t $IMAGE_NAME:$tag \ - . diff --git a/hermetic/Cargo.toml b/hermetic/Cargo.toml index b010e9a7..952b6781 100644 --- a/hermetic/Cargo.toml +++ b/hermetic/Cargo.toml @@ -10,7 +10,6 @@ publish = false [dependencies] anyhow = "1.0.75" -ceramic-tests-property.workspace = true serde = { version = "1.0.188", features = ["serde_derive"] } tokio = { version = "1.32.0", features = ["macros", "rt-multi-thread", "fs"] } clap = { version = "4.4.3", features = ["derive"] } diff --git a/hermetic/src/cli.rs b/hermetic/src/cli.rs index 00065bd6..2620a575 100644 --- a/hermetic/src/cli.rs +++ b/hermetic/src/cli.rs @@ -64,10 +64,8 @@ pub struct TestOpts { #[derive(Debug, Clone)] pub enum FlavorOpts { - /// Property based tests - Property, - /// Smoke tests - Smoke, + /// Correctness tests + Correctness, /// Performance tests Performance, } @@ -75,8 +73,7 @@ pub enum FlavorOpts { impl FlavorOpts { fn name(&self) -> &'static str { match self { - FlavorOpts::Property => "prop", - FlavorOpts::Smoke => "smoke", + FlavorOpts::Correctness => "correctness", FlavorOpts::Performance => "perf", } } @@ -84,11 +81,7 @@ impl FlavorOpts { impl ValueEnum for FlavorOpts { fn value_variants<'a>() -> &'a [Self] { - &[ - FlavorOpts::Property, - FlavorOpts::Smoke, - FlavorOpts::Performance, - ] + &[FlavorOpts::Correctness, FlavorOpts::Performance] } fn to_possible_value(&self) -> Option { @@ -119,8 +112,7 @@ impl TryFrom for TestConfig { } = opts; let flavor = match flavor { - FlavorOpts::Property => Flavor::Property, - FlavorOpts::Smoke => Flavor::Smoke, + FlavorOpts::Correctness => Flavor::Correctness, FlavorOpts::Performance => Flavor::Performance( simulation.ok_or(anyhow!("Simulation file required for performance tests"))?, ), diff --git a/hermetic/src/cli/tester.rs b/hermetic/src/cli/tester.rs index ca0efd4c..be50d61c 100644 --- a/hermetic/src/cli/tester.rs +++ b/hermetic/src/cli/tester.rs @@ -69,10 +69,8 @@ pub struct TestConfig { #[derive(Debug, Clone)] pub enum Flavor { - /// Property based tests - Property, - /// Smoke tests - Smoke, + /// Correctness tests + Correctness, /// Performance tests Performance(PathBuf), } @@ -80,8 +78,7 @@ pub enum Flavor { impl Flavor { fn name(&self) -> &'static str { match self { - Flavor::Property => "prop", - Flavor::Smoke => "smoke", + Flavor::Correctness => "correctness", Flavor::Performance(_) => "perf", } } @@ -167,8 +164,8 @@ pub async fn run(opts: TestConfig) -> Result<()> { // Create any dependencies of the job match opts.flavor { - Flavor::Property | Flavor::Performance(_) => {} - Flavor::Smoke => { + Flavor::Performance(_) => {} + Flavor::Correctness => { apply_resource_namespaced( client.clone(), &namespace, @@ -185,19 +182,11 @@ pub async fn run(opts: TestConfig) -> Result<()> { // Create the job/simulation let job_name = match &opts.flavor { - Flavor::Property => { + Flavor::Correctness => { create_resource_namespaced( client.clone(), &namespace, - property_job(&namespace, opts.test_image), - ) - .await? - } - Flavor::Smoke => { - create_resource_namespaced( - client.clone(), - &namespace, - smoke_job(&namespace, opts.test_image, opts.test_selector), + correctness_test(&namespace, opts.test_image, opts.test_selector), ) .await? } @@ -212,7 +201,7 @@ pub async fn run(opts: TestConfig) -> Result<()> { }; let results = match opts.flavor { - Flavor::Property | Flavor::Smoke => { + Flavor::Correctness => { wait_for_job(client.clone(), &namespace, &job_name, opts.job_timeout).await? } Flavor::Performance(_) => { @@ -574,72 +563,7 @@ fn process_peers() -> ConfigMap { } } -fn property_job(namespace: &str, image: Option) -> Job { - let (image, image_pull_policy) = if let Some(image) = image { - (Some(image), Some("IfNotPresent".to_owned())) - } else { - ( - Some("public.ecr.aws/r5b3e0r5/3box/ceramic-tests-property".to_owned()), - Some("Always".to_owned()), - ) - }; - - Job { - metadata: ObjectMeta { - generate_name: Some("ceramic-tests-prop-".to_owned()), - namespace: Some(namespace.to_owned()), - ..Default::default() - }, - spec: Some(JobSpec { - // Clean up finished jobs after 10m - ttl_seconds_after_finished: Some(600), - backoff_limit: Some(0), - template: PodTemplateSpec { - spec: Some(PodSpec { - restart_policy: Some("Never".to_owned()), - service_account_name: Some(SERVICE_ACCOUNT_NAME.to_owned()), - init_containers: Some(vec![job_init()]), - containers: vec![Container { - name: "tests".to_owned(), - image, - image_pull_policy, - resources: Some(ResourceRequirements { - limits: Some(BTreeMap::from_iter([ - ("cpu".to_owned(), Quantity("250m".to_owned())), - ("ephemeral-storage".to_owned(), Quantity("1Gi".to_owned())), - ("memory".to_owned(), Quantity("1Gi".to_owned())), - ])), - requests: Some(BTreeMap::from_iter([ - ("cpu".to_owned(), Quantity("250m".to_owned())), - ("ephemeral-storage".to_owned(), Quantity("1Gi".to_owned())), - ("memory".to_owned(), Quantity("1Gi".to_owned())), - ])), - ..Default::default() - }), - volume_mounts: Some(vec![VolumeMount { - mount_path: "/config".to_owned(), - name: "config-volume".to_owned(), - ..Default::default() - }]), - env: Some(vec![EnvVar { - name: "ENV_PATH".to_owned(), - value: Some("/config/.env".to_owned()), - ..Default::default() - }]), - ..Default::default() - }], - volumes: Some(job_volumes()), - ..Default::default() - }), - ..Default::default() - }, - ..Default::default() - }), - ..Default::default() - } -} - -fn smoke_job(namespace: &str, image: Option, test_selector: String) -> Job { +fn correctness_test(namespace: &str, image: Option, test_selector: String) -> Job { let (image, image_pull_policy) = if let Some(image) = image { (Some(image), Some("IfNotPresent".to_owned())) } else { @@ -651,7 +575,7 @@ fn smoke_job(namespace: &str, image: Option, test_selector: String) -> J Job { metadata: ObjectMeta { - generate_name: Some("ceramic-tests-smoke-".to_owned()), + generate_name: Some("ceramic-tests-".to_owned()), namespace: Some(namespace.to_owned()), ..Default::default() }, diff --git a/property/Cargo.toml b/property/Cargo.toml deleted file mode 100644 index 3ae187d0..00000000 --- a/property/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -[package] -name = "ceramic-tests-property" -version.workspace = true -edition.workspace = true -authors.workspace = true -license.workspace = true -repository.workspace = true -publish = false - -[dependencies] -anyhow = "1.0.75" -ceramic-http-client = { git = "https://github.com/3box/ceramic-http-client-rs", branch = "main" } -ceramic-api-server = { git = "https://github.com/3box/rust-ceramic", branch = "main", default-features = false, features = [ - "client", - # TODO: We do not need the server but the generated feature flags are broken - # percent-encoding dep is not included with client feature alone. - "server", -] } -ceramic-kubo-rpc-server = { git = "https://github.com/3box/rust-ceramic", branch = "main", default-features = false, features = [ - "client", - # TODO: We do not need the server but the generated feature flags are broken - # percent-encoding dep is not included with client feature alone. - "server", -] } -dotenvy = "0.15.7" -hyper = { version = "0.14.27", features = ["client"] } -rand = "0.8.5" -schemars = "0.8.13" -serde = { version = "1.0.188", features = ["serde_derive"] } -swagger = "6.3.0" -tokio = { version = "1.32.0", features = ["macros", "rt-multi-thread", "fs"] } -test-log = { version = "0.2.12", default-features = false, features = ["log"] } -url = { version = "2.2.2" } -json-patch = "1.0.0" -serde_json = "1.0.105" -backoff = { version = "0.4.0", features = ["tokio"] } -env_logger = "0.10.0" diff --git a/property/env/.env b/property/env/.env deleted file mode 100644 index 94f0ef69..00000000 --- a/property/env/.env +++ /dev/null @@ -1 +0,0 @@ -COMPOSEDB_URLS=https://ceramic-private-dev.3boxlabs.com,https://ceramic-dev.3boxlabs.com diff --git a/property/src/ceramic.rs b/property/src/ceramic.rs deleted file mode 100644 index b6f51ff2..00000000 --- a/property/src/ceramic.rs +++ /dev/null @@ -1,67 +0,0 @@ -use ceramic_http_client::{ - api::StreamsResponse, - ceramic_event::{DidDocument, JwkSigner}, - remote::CeramicRemoteHttpClient, - GetRootSchema, -}; -use rand::{thread_rng, Rng}; -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; -use url::Url; - -pub const DID_PRIVATE_KEY: &str = - "c864a33033626b448912a19509992552283fd463c143bdc4adc75f807b7a4dce"; - -pub type ComposeDbClient = CeramicRemoteHttpClient; - -pub async fn composedb_client(url: Url) -> ComposeDbClient { - ComposeDbClient::new(signer().await, url) -} - -async fn signer() -> JwkSigner { - let s = std::env::var("DID_DOCUMENT") - .unwrap_or_else(|_| "did:key:z6MknX8LH956AZnat7haydYdeJTFXPwgQZypuZL4TtXUfLqw".to_owned()); - JwkSigner::new( - DidDocument::new(&s), - &std::env::var("DID_PRIVATE_KEY").unwrap_or_else(|_| DID_PRIVATE_KEY.to_owned()), - ) - .await - .unwrap() -} - -#[derive(Deserialize, JsonSchema, Serialize)] -#[schemars(rename_all = "camelCase", deny_unknown_fields)] -pub struct SmallModel { - pub creator: String, - pub radius: i32, - pub red: i32, - pub green: i32, - pub blue: i32, -} - -impl SmallModel { - pub fn random() -> Self { - let mut rng = thread_rng(); - Self { - creator: "keramik".to_string(), - radius: rng.gen_range(0..100), - red: rng.gen_range(0..255), - green: rng.gen_range(0..255), - blue: rng.gen_range(0..255), - } - } -} - -impl GetRootSchema for SmallModel {} - -impl TryFrom for SmallModel { - type Error = anyhow::Error; - - fn try_from(value: StreamsResponse) -> Result { - if let Some(state) = value.state { - serde_json::from_value(state.content).map_err(anyhow::Error::from) - } else { - Err(anyhow::anyhow!("missing state")) - } - } -} diff --git a/property/src/lib.rs b/property/src/lib.rs deleted file mode 100644 index ddebd14d..00000000 --- a/property/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod ceramic; diff --git a/property/tests/api.rs b/property/tests/api.rs deleted file mode 100644 index c9e75f9d..00000000 --- a/property/tests/api.rs +++ /dev/null @@ -1,291 +0,0 @@ -use std::path::Path; -use std::sync::Once; -use std::{env, time::Duration}; - -use anyhow::{anyhow, Result}; -use backoff::ExponentialBackoffBuilder; -use ceramic_api_server::ApiNoContext as CeramicApi; -use ceramic_http_client::{ - api::StreamsResponse, ceramic_event::StreamId, ModelAccountRelation, ModelDefinition, -}; -use ceramic_kubo_rpc_server::ApiNoContext as KuboRpcApi; -use json_patch::{Patch, PatchOperation, ReplaceOperation}; -use serde_json::json; -use swagger::{ - AuthData, ContextBuilder, ContextWrapper, DropContextService, EmptyContext, Push, XSpanIdString, -}; -use tokio::sync::OnceCell; -use url::Url; - -use ceramic_tests_property::ceramic::{composedb_client, ComposeDbClient, SmallModel}; - -// Use test_log to intialize trace logging. -// For example use this to get debug logging for these tests: -// -// RUST_LOG=info,api=debug cargo test -// -use test_log::test; - -const CERAMIC_URLS: &str = "CERAMIC_URLS"; -const COMPOSEDB_URLS: &str = "COMPOSEDB_URLS"; -const DEFAULT_ENV_PATH: &str = "env/.env"; -const ENV_PATH: &str = "ENV_PATH"; - -static INIT_ENV: Once = Once::new(); -static COMPOSEDB_CLIENTS: OnceCell> = OnceCell::const_new(); -static CERAMIC_CLIENTS: OnceCell> = OnceCell::const_new(); -static KUBO_RPC_CLIENTS: OnceCell> = OnceCell::const_new(); - -type ClientContext = swagger::make_context_ty!( - ContextBuilder, - EmptyContext, - Option, - XSpanIdString -); -type CeramicClient = Box< - ContextWrapper< - ceramic_api_server::Client< - DropContextService< - hyper::client::Client, - ClientContext, - >, - ClientContext, - >, - ClientContext, - >, ->; -type KuboRpcClient = Box< - ContextWrapper< - ceramic_kubo_rpc_server::Client< - DropContextService< - hyper::client::Client, - ClientContext, - >, - ClientContext, - >, - ClientContext, - >, ->; - -fn init_env() { - INIT_ENV.call_once(|| { - // Read .env - dotenvy::from_path(Path::new( - env::var(ENV_PATH) - .unwrap_or(DEFAULT_ENV_PATH.to_owned()) - .as_str(), - )) - .expect("Could not find .env file"); - }) -} - -async fn get_composedb_clients() -> &'static Vec { - COMPOSEDB_CLIENTS - .get_or_init(|| async { - init_env(); - // Parse Ceramic URLs and create clients - let urls = env::var(COMPOSEDB_URLS).unwrap_or_default(); - let urls = urls.split(',').filter_map(|url| Url::parse(url).ok()); - let mut clients = Vec::new(); - for url in urls { - clients.push(composedb_client(url).await); - } - clients - }) - .await -} - -async fn get_ceramic_clients() -> &'static Vec { - CERAMIC_CLIENTS - .get_or_init(|| async { - init_env(); - // Parse Ceramic URLs and create clients - let urls = env::var(CERAMIC_URLS).unwrap_or_default(); - let urls = urls.split(','); - let mut clients = Vec::new(); - - for url in urls { - if url.is_empty() { - continue; - } - let context: ClientContext = swagger::make_context!( - ContextBuilder, - EmptyContext, - None as Option, - XSpanIdString::default() - ); - let client = ceramic_api_server::Client::try_new_http(url) - .expect("Failed to create HTTP client"); - clients.push(Box::new( - ceramic_api_server::ContextWrapperExt::with_context(client, context), - )) - } - - clients - }) - .await -} - -async fn get_kubo_rpc_clients() -> &'static Vec { - KUBO_RPC_CLIENTS - .get_or_init(|| async { - init_env(); - // Parse Ceramic URLs and create clients - let urls = env::var(CERAMIC_URLS).unwrap_or_default(); - let urls = urls.split(','); - let mut clients = Vec::new(); - - for url in urls { - if url.is_empty() { - continue; - } - let context: ClientContext = swagger::make_context!( - ContextBuilder, - EmptyContext, - None as Option, - XSpanIdString::default() - ); - let client = ceramic_kubo_rpc_server::Client::try_new_http(url) - .expect("Failed to create HTTP client"); - clients.push(Box::new( - ceramic_kubo_rpc_server::ContextWrapperExt::with_context(client, context), - )) - } - - clients - }) - .await -} - -#[test(tokio::test)] -async fn composedb_hello() { - let composedb_clients = get_composedb_clients().await; - for (idx, client) in composedb_clients.iter().enumerate() { - println!( - "ComposeDB {} says {}", - idx + 1, - client.healthcheck().await.unwrap() - ); - } -} - -#[test(tokio::test)] -#[ignore] -async fn ceramic_hello() { - let ceramic_clients = get_ceramic_clients().await; - assert!(!ceramic_clients.is_empty()); - for c in ceramic_clients { - let version = c.version_post().await.unwrap(); - println!("{version:?}"); - } -} - -#[test(tokio::test)] -async fn kubo_rpc_hello() { - let kubo_rpc_clients = get_kubo_rpc_clients().await; - assert!(!kubo_rpc_clients.is_empty()); - for c in kubo_rpc_clients { - let id = c.id_post(None).await.unwrap(); - println!("{id:?}"); - } -} - -// Test that a model can be indexed indepenedent of where in the network that model was initially -// created. -#[test(tokio::test)] -async fn composedb_models_can_be_indexed() -> Result<()> { - let composedb_clients = get_composedb_clients().await; - assert!(!composedb_clients.is_empty()); - // Repeat the test where each node is the model origin. - for origin in composedb_clients { - // Create model on origin node - let model = ModelDefinition::new::( - "create_and_index_model_small_model", - ModelAccountRelation::List, - )?; - let model_id = origin.create_model(&model).await?; - - // Index model on all nodes - for client in composedb_clients { - client.index_model(&model_id).await?; - let models = client.list_indexed_models().await?; - assert!(models.models.contains(&model_id)); - } - } - Ok(()) -} - -// Test that updates to streams can be read on any node that is indexing an model indepenedent of -// where in the network the updates originate. -#[test(tokio::test)] -#[ignore] -async fn composedb_updates_can_be_read() -> Result<()> { - let composedb_clients = get_composedb_clients().await; - assert!(!composedb_clients.is_empty()); - // Prepare test by creating model indexed by all nodes. - let origin = &composedb_clients[0]; - // Create model on origin node - let model = ModelDefinition::new::( - "create_and_index_model_small_model", - ModelAccountRelation::List, - )?; - let model_id = origin.create_model(&model).await?; - - // Index model on all nodes - for client in composedb_clients { - client.index_model(&model_id).await?; - } - - let model = SmallModel::random(); - let instance_id = origin.create_list_instance(&model_id, &model).await?; - - let mut counter = model.radius; - // Repeat the test where each node is the node accepting updates. - for updater in composedb_clients { - counter += 1; - let patch = Patch(vec![PatchOperation::Replace(ReplaceOperation { - path: "/radius".to_string(), - value: json!(counter), - })]); - - let resp = updater.update(&model_id, &instance_id, patch).await?; - let update = SmallModel::try_from(resp)?; - let has_counter_update = |model: SmallModel| model.radius == counter; - assert!(has_counter_update(update)); - - // Read update on all nodes. - for client in composedb_clients { - wait_on_stream_update(client, &instance_id, has_counter_update).await?; - } - } - Ok(()) -} - -/// Polls stream state on a backoff until observe retruns true up to a maximum interval. -async fn wait_on_stream_update( - client: &ComposeDbClient, - instance_id: &StreamId, - observe: impl Fn(M) -> bool, -) -> Result<()> -where - M: TryFrom, -{ - let backoff = ExponentialBackoffBuilder::new() - .with_initial_interval(Duration::from_secs(1)) - .with_max_elapsed_time(Some(Duration::from_secs(15))) - .build(); - backoff::future::retry(backoff, || async { - let resp = client.get(instance_id).await?; - let model = M::try_from(resp).map_err(backoff::Error::Permanent)?; - if !observe(model) { - Err(backoff::Error::Transient { - err: anyhow!("state not yet updated"), - retry_after: None, - }) - } else { - Ok(()) - } - }) - .await?; - Ok(()) -} diff --git a/suite/Dockerfile b/suite/Dockerfile index b767b7a1..d3731657 100644 --- a/suite/Dockerfile +++ b/suite/Dockerfile @@ -4,7 +4,7 @@ RUN npm install -g pnpm WORKDIR /app -RUN apk add --no-cache curl jq +RUN apk add --no-cache curl jq bash COPY package.json pnpm-*.yaml jest.config.json tsconfig.json entrypoint.sh update.sh ./ diff --git a/suite/package.json b/suite/package.json index 17366988..ea558c3e 100644 --- a/suite/package.json +++ b/suite/package.json @@ -20,22 +20,25 @@ "@aws-sdk/client-api-gateway": "^3.427.0", "@aws-sdk/client-dynamodb": "^3.427.0", "@aws-sdk/client-lambda": "^3.427.0", - "@ceramicnetwork/common": "3.2.0", - "@ceramicnetwork/http-client": "3.2.0", - "@ceramicnetwork/stream-model": "2.2.0", - "@ceramicnetwork/stream-model-instance": "2.2.0", - "@ceramicnetwork/stream-tile": "3.2.0", - "@ceramicnetwork/streamid": "3.2.0", - "@composedb/devtools": "^0.6.1", + "@ceramicnetwork/common": "3.3.0", + "@ceramicnetwork/http-client": "3.3.0", + "@ceramicnetwork/stream-model": "2.3.0", + "@ceramicnetwork/stream-model-instance": "2.3.0", + "@ceramicnetwork/stream-tile": "3.3.0", + "@ceramicnetwork/streamid": "3.3.0", + "@composedb/devtools": "0.6.1", "@jest/globals": "^29.7.0", "@jest/reporters": "^29.7.0", + "@stablelib/random": "^1.0.2", "axios": "^0.24.0", - "dids": "^5.0.2", + "cross-fetch": "^4.0.0", + "dids": "5.0.2", "dotenv": "^16.3.1", "jest": "^29.7.0", - "key-did-provider-ed25519": "^4.0.2", - "key-did-resolver": "^4.0.0", + "key-did-provider-ed25519": "4.0.2", + "key-did-resolver": "4.0.0", "luxon": "3.2.1", + "multiformats": "^13.0.1", "node-jq": "^2.3.5", "rxjs": "^7.8.1", "ts-jest": "^29.1.1", diff --git a/suite/pnpm-lock.yaml b/suite/pnpm-lock.yaml index e6d85812..48f90ac3 100644 --- a/suite/pnpm-lock.yaml +++ b/suite/pnpm-lock.yaml @@ -15,37 +15,43 @@ dependencies: specifier: ^3.427.0 version: 3.427.0 '@ceramicnetwork/common': - specifier: 3.2.0 - version: 3.2.0 + specifier: 3.3.0 + version: 3.3.0(typescript@4.9.5) '@ceramicnetwork/http-client': - specifier: 3.2.0 - version: 3.2.0 + specifier: 3.3.0 + version: 3.3.0(typescript@4.9.5) '@ceramicnetwork/stream-model': - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.3.0 + version: 2.3.0(typescript@4.9.5) '@ceramicnetwork/stream-model-instance': - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.3.0 + version: 2.3.0(typescript@4.9.5) '@ceramicnetwork/stream-tile': - specifier: 3.2.0 - version: 3.2.0 + specifier: 3.3.0 + version: 3.3.0(typescript@4.9.5) '@ceramicnetwork/streamid': - specifier: 3.2.0 - version: 3.2.0 + specifier: 3.3.0 + version: 3.3.0 '@composedb/devtools': - specifier: ^0.6.1 - version: 0.6.1(graphql@16.8.1) + specifier: 0.6.1 + version: 0.6.1(graphql@16.8.1)(typescript@4.9.5) '@jest/globals': specifier: ^29.7.0 version: 29.7.0 '@jest/reporters': specifier: ^29.7.0 version: 29.7.0 + '@stablelib/random': + specifier: ^1.0.2 + version: 1.0.2 axios: specifier: ^0.24.0 version: 0.24.0 + cross-fetch: + specifier: ^4.0.0 + version: 4.0.0 dids: - specifier: ^5.0.2 + specifier: 5.0.2 version: 5.0.2(typescript@4.9.5) dotenv: specifier: ^16.3.1 @@ -54,14 +60,17 @@ dependencies: specifier: ^29.7.0 version: 29.7.0(@types/node@16.18.57) key-did-provider-ed25519: - specifier: ^4.0.2 + specifier: 4.0.2 version: 4.0.2(typescript@4.9.5) key-did-resolver: - specifier: ^4.0.0 + specifier: 4.0.0 version: 4.0.0 luxon: specifier: 3.2.1 version: 3.2.1 + multiformats: + specifier: ^13.0.1 + version: 13.0.1 node-jq: specifier: ^2.3.5 version: 2.3.5 @@ -96,7 +105,7 @@ devDependencies: version: 3.0.3 ts-loader: specifier: ^9.4.4 - version: 9.4.4(typescript@4.9.5)(webpack@5.89.0) + version: 9.4.4(typescript@4.9.5)(webpack@5.90.0) packages: @@ -1157,89 +1166,105 @@ packages: /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - /@ceramicnetwork/codecs@2.2.0: - resolution: {integrity: sha512-HRDdJN7G954F7KOZ117WxhYUC9pGoUyBc6cEr14MLhhxA9S2+bYYOKZ1VAaTFawF1FB6rQkHIT37IYPVo0tI0A==} + /@ceramicnetwork/codecs@2.3.0: + resolution: {integrity: sha512-lNGWuPUC1Iw52YBnZyicpcNxIJLo108DC/ftLHm25DBo8b+XhtDdKDUg9j+e+Q8WJj+P0y1X6jXesqyCo6/aXw==} dependencies: - '@ceramicnetwork/streamid': 3.2.0 - cartonne: 2.2.0 + '@ceramicnetwork/streamid': 3.3.0 + cartonne: 3.0.1 codeco: 1.2.0 dag-jose: 4.0.0 - multiformats: 11.0.2 - uint8arrays: 4.0.10 + multiformats: 13.0.1 + uint8arrays: 5.0.1 dev: false - /@ceramicnetwork/common@3.2.0: - resolution: {integrity: sha512-3ql9LN/AXO2VxosnNzTeaMo+JRQpCclwFhyfWrpH0okLdiB1CeDDOkiKNOvz+6ZtYql1NpIby1/Ag5ovtxgQjg==} + /@ceramicnetwork/common@3.3.0(typescript@4.9.5): + resolution: {integrity: sha512-lr66KUZIv/M825B7tfmycS49WnpIQQVlzaR5/oRZb4Jsb1gjCX9pJRJAW8mCgMJ1VIxSVoMp4nNd3cwVwk5GMQ==} dependencies: - '@ceramicnetwork/codecs': 2.2.0 - '@ceramicnetwork/streamid': 3.2.0 - '@didtools/cacao': 2.1.0 - '@didtools/pkh-ethereum': 0.1.0 - '@didtools/pkh-solana': 0.1.1 - '@didtools/pkh-stacks': 0.1.0 - '@didtools/pkh-tezos': 0.2.2 + '@ceramicnetwork/codecs': 2.3.0 + '@ceramicnetwork/streamid': 3.3.0 + '@didtools/cacao': 3.0.1(typescript@4.9.5) + '@didtools/pkh-ethereum': 0.2.1 + '@didtools/pkh-solana': 0.2.0(typescript@4.9.5) + '@didtools/pkh-stacks': 0.2.0(typescript@4.9.5) + '@didtools/pkh-tezos': 0.3.0(typescript@4.9.5) '@stablelib/random': 1.0.2 caip: 1.1.0 flat: 5.0.2 - it-first: 1.0.7 + it-first: 3.0.4 jet-logger: 1.2.2 lodash.clonedeep: 4.5.0 logfmt: 1.4.0 - multiformats: 11.0.2 + multiformats: 13.0.1 rxjs: 7.8.1 - uint8arrays: 4.0.10 + uint8arrays: 5.0.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@ceramicnetwork/http-client@3.2.0: - resolution: {integrity: sha512-HC0tw9cL7/Q0qstOSc3pm9uAQ6pPx9Y/0dsmO+lZRxPMW9gQqOqY1Oa7Wi3PIvyiJaimwnM+G1SFM6GWQ676Lg==} + /@ceramicnetwork/http-client@3.3.0(typescript@4.9.5): + resolution: {integrity: sha512-8Ju/TXaCy3xchUtMbb4Xyp1WaJXEInO6t8F8WdHy/PX9S4lAHOj9kB2erLVKWGwhpzyvS92pK7noIPu8ZJ/Bug==} dependencies: - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/stream-caip10-link': 3.2.0 - '@ceramicnetwork/stream-model': 2.2.0 - '@ceramicnetwork/stream-model-instance': 2.2.0 - '@ceramicnetwork/stream-tile': 3.2.0 - '@ceramicnetwork/streamid': 3.2.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-caip10-link': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-model': 2.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-model-instance': 2.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-tile': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/streamid': 3.3.0 '@scarf/scarf': 1.3.0 query-string: 7.1.3 rxjs: 7.8.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@ceramicnetwork/stream-caip10-link@3.2.0: - resolution: {integrity: sha512-36/7JWVm9Qn48/ezIRGJy7lAP4IZ2yGucAYXd/Ssq2RDLdGC7xTlva8csYQd/8b4nUu6UZqhqdRGEbBhGRN2Cw==} + /@ceramicnetwork/stream-caip10-link@3.3.0(typescript@4.9.5): + resolution: {integrity: sha512-DIVOQIBSD3heD/z7csfUVAd6OvYigRJneFebrfE5+agNmi9ObUKybyFeUpSEnvACV9W+mHKWTiVSMg6dEJlyTg==} dependencies: - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/streamid': 3.2.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/streamid': 3.3.0 caip: 1.1.0 did-resolver: 4.1.0 lodash.clonedeep: 4.5.0 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@ceramicnetwork/stream-model-instance@2.2.0: - resolution: {integrity: sha512-sLQjGpQc2V9Mh3BFsJvioKsRy8eyFrufxG7u2WNjSkRdWOrqMBLSuyEy2U5whT92nIe8DcKlD8eGW2rmY7OOCQ==} + /@ceramicnetwork/stream-model-instance@2.3.0(typescript@4.9.5): + resolution: {integrity: sha512-8N73DN6xPtkj3gnQ/e9UgU4HIegqA4tIL3rOhghpMcz4+YE9f2nT9M9h3xiOSOYPylxUdDlJgWKxvQJ2/x0Fpg==} dependencies: - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/streamid': 3.2.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/streamid': 3.3.0 '@ipld/dag-cbor': 7.0.3 '@stablelib/random': 1.0.2 fast-json-patch: 3.1.1 object-sizeof: 2.6.4 - uint8arrays: 4.0.10 + uint8arrays: 5.0.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@ceramicnetwork/stream-model@2.2.0: - resolution: {integrity: sha512-O+xmtMJ3dFOqxkoaDVKZAH8Z+4AqYyDdSgoB97JNpXHILM2a13NMJyvVVtZzVedywj6jAkdOxC80JYOscQtiew==} + /@ceramicnetwork/stream-model@2.3.0(typescript@4.9.5): + resolution: {integrity: sha512-OQxFBFbBVaUm+Hia2zcxigInTokgBtU4b2S5O5Vc0A/Xo66uoj99JYT50n1ZXL6vjPCuKnY92Uilh5hCtEmIoQ==} dependencies: - '@ceramicnetwork/codecs': 2.2.0 - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/streamid': 3.2.0 + '@ceramicnetwork/codecs': 2.3.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/streamid': 3.3.0 '@ipld/dag-cbor': 7.0.3 '@stablelib/random': 1.0.2 ajv: 8.12.0 @@ -1247,47 +1272,55 @@ packages: codeco: 1.2.0 fast-json-patch: 3.1.1 json-schema-typed: 8.0.1 - multiformats: 11.0.2 - uint8arrays: 4.0.10 + multiformats: 13.0.1 + uint8arrays: 5.0.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@ceramicnetwork/stream-tile@3.2.0: - resolution: {integrity: sha512-QW0FS2OHmxK/Gs4GcFGgAZY4gtnSBBE2jUWNAMoXne8T0CjbQforUFUXC5KD4ojGMBsqm+w8vBurSk9ihcT2/w==} + /@ceramicnetwork/stream-tile@3.3.0(typescript@4.9.5): + resolution: {integrity: sha512-nxvCGYcfXUVgrVIrmg+kgV+C9Q18H5/oeePryAuhsv5AqkY+0rdRT1lgxccMzQVXti5kxxeiTgVGN31w6CGPtw==} dependencies: - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/streamid': 3.2.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/streamid': 3.3.0 '@ipld/dag-cbor': 7.0.3 '@stablelib/random': 1.0.2 - dids: 4.0.4 + dids: 5.0.2(typescript@4.9.5) fast-json-patch: 3.1.1 lodash.clonedeep: 4.5.0 - uint8arrays: 4.0.10 + uint8arrays: 5.0.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@ceramicnetwork/streamid@3.2.0: - resolution: {integrity: sha512-o1nlXcSosbl2pcA3vkdZyiwdwDC7J8O+u/mGdBysJ6brQvQcbB9W9QYE6OgB5p+dxXdY9u5zwATURIEw5Ify3w==} + /@ceramicnetwork/streamid@3.3.0: + resolution: {integrity: sha512-twJ3hBZ0uoohozA6SVqK6tHr+9FgmvznyyboyxRFQkkvl/X5qg8Qef8rp3JGKuJgnw7YjuHYP4eV+H6Bs2+SNw==} dependencies: '@ipld/dag-cbor': 7.0.3 '@stablelib/sha256': 1.0.1 cborg: 1.10.2 mapmoize: 1.2.1 - multiformats: 11.0.2 - uint8arrays: 4.0.10 + multiformats: 13.0.1 + uint8arrays: 5.0.1 varint: 6.0.0 dev: false - /@composedb/devtools@0.6.1(graphql@16.8.1): + /@composedb/devtools@0.6.1(graphql@16.8.1)(typescript@4.9.5): resolution: {integrity: sha512-584a6Zg4AYWhGhyhvq6Ac/YdHpgHTqRf9HgtS5IglJDyVV2DGKvVAXg4bYv7hGa6zrppelHOlNQ99U3ICizPXw==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/stream-model': 2.2.0 - '@ceramicnetwork/streamid': 3.2.0 - '@composedb/graphql-scalars': 0.6.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-model': 2.3.0(typescript@4.9.5) + '@ceramicnetwork/streamid': 3.3.0 + '@composedb/graphql-scalars': 0.6.0(typescript@4.9.5) '@didtools/cacao': 2.1.0 '@graphql-tools/schema': 10.0.2(graphql@16.8.1) '@graphql-tools/utils': 10.0.13(graphql@16.8.1) @@ -1296,38 +1329,50 @@ packages: lodash-es: 4.17.21 multiformats: 12.1.3 object-hash: 3.0.0 - type-fest: 4.10.0 + type-fest: 4.10.1 uint8arrays: 4.0.10 transitivePeerDependencies: + - bufferutil - encoding - graphql + - typescript + - utf-8-validate + - zod dev: false - /@composedb/graphql-scalars@0.6.0: + /@composedb/graphql-scalars@0.6.0(typescript@4.9.5): resolution: {integrity: sha512-9GssARG72pXb2SEYK6Zozz92tl37WnI9fCgKiTKBIjisoUGpUnTv2sRNRJV8X9j4CgawvCm4Yb/SH+CtUXuZew==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/streamid': 3.2.0 - '@composedb/types': 0.6.0 + '@ceramicnetwork/streamid': 3.3.0 + '@composedb/types': 0.6.0(typescript@4.9.5) caip: 1.1.0 graphql: 16.8.1 graphql-scalars: 1.22.4(graphql@16.8.1) multiformats: 12.1.3 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@composedb/types@0.6.0: + /@composedb/types@0.6.0(typescript@4.9.5): resolution: {integrity: sha512-Bpt85C/bIByqFx87OC14DBGfXCV7tj9IsZ5AQ0fv53bGATs+otEj+tnz5UxDRcSSuT9iLOLa8XLLKiEKkwmecQ==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/common': 3.2.0 - '@ceramicnetwork/stream-model': 2.2.0 - '@ceramicnetwork/stream-model-instance': 2.2.0 + '@ceramicnetwork/common': 3.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-model': 2.3.0(typescript@4.9.5) + '@ceramicnetwork/stream-model-instance': 2.3.0(typescript@4.9.5) dids: 4.0.4 json-schema-typed: 8.0.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false /@didtools/cacao@2.1.0: @@ -1378,8 +1423,8 @@ packages: uint8arrays: 5.0.1 dev: false - /@didtools/pkh-ethereum@0.1.0: - resolution: {integrity: sha512-Abmc6uvWU8zkOrQbPUAsRtTW293vhx+rzd+/bbduTLrRGEqZ3niakQkxMqvQKZ6/9w+n0IjQVXSHE5vzc5cAeg==} + /@didtools/pkh-ethereum@0.2.1: + resolution: {integrity: sha512-apQefbOqqy8HQMDNVG0ITxHLr9I5iZrjADX+mPB+ie1ue8MO8pOHMifLQ3j0R6RjS2einCd+hEZ4Ib4AKs3Xlw==} engines: {node: '>=14.14'} dependencies: '@didtools/cacao': 2.1.0 @@ -1415,42 +1460,56 @@ packages: - zod dev: false - /@didtools/pkh-solana@0.1.1: - resolution: {integrity: sha512-2Sn4xSg8otqAeXA0tDYUM+3KQtzOr2gBcu0wbJyOn/30Ocj3jxHFQg7NfumEsiQtQ0HtnmsGZUrnCgoxHqLwWg==} + /@didtools/pkh-solana@0.2.0(typescript@4.9.5): + resolution: {integrity: sha512-wOfa+hbWo1ok8YnR8tq2mZKbcyEv9qrxtTR5jXOuhOqCkz30/qu9e2Wib/byx7Kx5/ik/2z1nd2YPL0vrA+TxQ==} engines: {node: '>=14.14'} dependencies: - '@didtools/cacao': 2.1.0 + '@didtools/cacao': 3.0.1(typescript@4.9.5) '@noble/curves': 1.3.0 '@stablelib/random': 1.0.2 caip: 1.1.0 - uint8arrays: 4.0.10 + uint8arrays: 5.0.1 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod dev: false - /@didtools/pkh-stacks@0.1.0: - resolution: {integrity: sha512-dEgyHleiIa2afibchNqs07tSqddFS6pX9D5BNxbWH0NAr+FisVCA4nUXajcbd9TUbSuplClfQ4EXjjJAGqlgeg==} + /@didtools/pkh-stacks@0.2.0(typescript@4.9.5): + resolution: {integrity: sha512-lXe8ZURCYCDQXrjaM7A4p1RCKrVsQ+NbO7bI70pRfjven82BPLDiqEJbhRGnWKbjQD1CQe9MJXLy3AuStKc7qw==} engines: {node: '>=14.14'} dependencies: - '@didtools/cacao': 2.1.0 + '@didtools/cacao': 3.0.1(typescript@4.9.5) '@stablelib/random': 1.0.2 '@stacks/common': 6.10.0 - '@stacks/encryption': 6.11.2 - '@stacks/transactions': 6.11.2 + '@stacks/encryption': 6.11.3 + '@stacks/transactions': 6.11.3 caip: 1.1.0 jsontokens: 4.0.1 transitivePeerDependencies: + - bufferutil - encoding + - typescript + - utf-8-validate + - zod dev: false - /@didtools/pkh-tezos@0.2.2: - resolution: {integrity: sha512-pUzquLujQJQ4tQoGrXjozFZePNt+VLX7Bk32r1DPbkp8FaLoAA5UoaP1qf+fM/J9EsxCfdnpntqqGU+MmvIpHA==} + /@didtools/pkh-tezos@0.3.0(typescript@4.9.5): + resolution: {integrity: sha512-AB8drOnBkDSE9KolsiSShPwVOVbRXM2G5T//b+GgX9potVRTcRsD0z59x/6mU1e9g2kxpScOhjRrZsC0c+SQNw==} engines: {node: '>=14.14'} dependencies: - '@didtools/cacao': 2.1.0 + '@didtools/cacao': 3.0.1(typescript@4.9.5) '@noble/curves': 1.3.0 '@noble/hashes': 1.3.3 '@stablelib/random': 1.0.2 caip: 1.1.0 - uint8arrays: 4.0.10 + uint8arrays: 5.0.1 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod dev: false /@didtools/siwx@1.0.0: @@ -2671,25 +2730,25 @@ packages: resolution: {integrity: sha512-6x5Z7AKd9/kj3+DYE9xIDIkFLHihBH614i2wqrZIjN02WxVo063hWSjIlUxlx8P4gl6olVzlOy5LzhLJD9OP0A==} dependencies: '@types/bn.js': 5.1.5 - '@types/node': 18.19.8 + '@types/node': 18.19.9 dev: false - /@stacks/encryption@6.11.2: - resolution: {integrity: sha512-lkTlAmsmc8feLk57SVeTn08Z1brMX7kyxJ1KT02lAYvlhq34Hf/GoNLnHaowBRR6cExI2rAQYtOX162+mgJ5aQ==} + /@stacks/encryption@6.11.3: + resolution: {integrity: sha512-nUA/21L8NnCw1vPetczWz3fjBCleqRgYfNGJX98AIDs9sjRQkxUfUGYz+3PlbpYgHWHIeRZafitQhMRpVhsbkQ==} dependencies: '@noble/hashes': 1.1.5 '@noble/secp256k1': 1.7.1 '@scure/bip39': 1.1.0 '@stacks/common': 6.10.0 - '@types/node': 18.19.8 + '@types/node': 18.19.9 base64-js: 1.5.1 bs58: 5.0.0 ripemd160-min: 0.0.6 varuint-bitcoin: 1.1.2 dev: false - /@stacks/network@6.10.0: - resolution: {integrity: sha512-mbiZ8nlsyy77ndmBdaqhHXii22IFdK4ThRcOQs9j/O00DkAr04jCM4GV5Q+VLUnZ9OBoJq7yOV7Pf6jglh+0hw==} + /@stacks/network@6.11.3: + resolution: {integrity: sha512-c4ClCU/QUwuu8NbHtDKPJNa0M5YxauLN3vYaR0+S4awbhVIKFQSxirm9Q9ckV1WBh7FtD6u2S0x+tDQGAODjNg==} dependencies: '@stacks/common': 6.10.0 cross-fetch: 3.1.8 @@ -2697,13 +2756,13 @@ packages: - encoding dev: false - /@stacks/transactions@6.11.2: - resolution: {integrity: sha512-Ojz+8gEl0NcLNnlKqu2itLqqcdzH8zrkmyRUU2zcOJseKy6q7JID16wxMdEI8dSUcL7gxLYJzNMhx8BoI9CMPQ==} + /@stacks/transactions@6.11.3: + resolution: {integrity: sha512-Zb7ONYt8OJPTTdXQHobWqZ2mwTALpGt43PEsy2FpDgQzOodGk1lWDo1Jhzs3hhw/2ib5FE3iDMc6jptKe9miCg==} dependencies: '@noble/hashes': 1.1.5 '@noble/secp256k1': 1.7.1 '@stacks/common': 6.10.0 - '@stacks/network': 6.10.0 + '@stacks/network': 6.11.3 c32check: 2.0.0 lodash.clonedeep: 4.5.0 transitivePeerDependencies: @@ -2806,12 +2865,12 @@ packages: /@types/node@16.18.57: resolution: {integrity: sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==} - /@types/node@16.18.74: - resolution: {integrity: sha512-eEn8RkzZFcT0gb8qyi0CcfSOQnLE+NbGLIIaxGGmjn/N35v/C3M8ohxcpSlNlCv+H8vPpMGmrGDdCkzr8xu2tQ==} + /@types/node@16.18.75: + resolution: {integrity: sha512-+FSfZd5mpMDTcIK7bp2GueIcAespzR4FROOXnEst248c85vwthIEwtXYOLgVc/sI4ihE1K/7yO1lEiSgvwAOxA==} dev: true - /@types/node@18.19.8: - resolution: {integrity: sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==} + /@types/node@18.19.9: + resolution: {integrity: sha512-oZFKlC8l5YtzGQNT4zC2PiSSKzQVZ8bAwwd+EYdPLtyk0nSEq6O16SkK+rkkT2eflDAbormJgEF3QnH3oDrTSw==} dependencies: undici-types: 5.26.5 dev: false @@ -3524,8 +3583,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001579 - electron-to-chromium: 1.4.642 + caniuse-lite: 1.0.30001580 + electron-to-chromium: 1.4.645 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) dev: true @@ -3629,20 +3688,20 @@ packages: /caniuse-lite@1.0.30001546: resolution: {integrity: sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==} - /caniuse-lite@1.0.30001579: - resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + /caniuse-lite@1.0.30001580: + resolution: {integrity: sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==} dev: true /canonicalize@2.0.0: resolution: {integrity: sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==} dev: false - /cartonne@2.2.0: - resolution: {integrity: sha512-O1rA2AQKnposZJ7oT+GtCQpcv4kfs+gqkCs5rFLBfegP3K0nWNmHj5q4d8NlUxqe3EHvAddCci6WO+ogupl3MA==} + /cartonne@3.0.1: + resolution: {integrity: sha512-Y8DH//DthEUbfvOMGYj/9K3F1RcWkiVu2dB9tGkiBnMqojAXTpu+TUs9FNNx202H0TQdJgbPsQl7Q6NuJ48dCw==} dependencies: '@ipld/dag-cbor': 9.0.8 - multiformats: 11.0.2 - multihashes-sync: 1.1.3 + multiformats: 13.0.1 + multihashes-sync: 2.0.0 varintes: 2.0.5 dev: false @@ -3807,6 +3866,14 @@ packages: - encoding dev: false + /cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + /cross-inspect@1.0.0: resolution: {integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==} engines: {node: '>=16.0.0'} @@ -4118,8 +4185,8 @@ packages: /electron-to-chromium@1.4.544: resolution: {integrity: sha512-54z7squS1FyFRSUqq/knOFSptjjogLZXbKcYk3B0qkE1KZzvqASwRZnY2KzZQJqIYLVD38XZeoiMRflYSwyO4w==} - /electron-to-chromium@1.4.642: - resolution: {integrity: sha512-M4+u22ZJGpk4RY7tne6W+APkZhnnhmAH48FNl8iEFK2lEgob+U5rUQsIqQhvAwCXYpfd3H20pHK/ENsCvwTbsA==} + /electron-to-chromium@1.4.645: + resolution: {integrity: sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==} dev: true /elliptic@6.5.4: @@ -5494,8 +5561,8 @@ packages: is-object: 1.0.2 dev: false - /it-first@1.0.7: - resolution: {integrity: sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==} + /it-first@3.0.4: + resolution: {integrity: sha512-FtQl84iTNxN5EItP/JgL28V2rzNMkCzTUlNoj41eVdfix2z1DBuLnBqZ0hzYhGGa1rMpbQf0M7CQSA2adlrLJg==} dev: false /iterator.prototype@1.1.2: @@ -5879,7 +5946,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 16.18.74 + '@types/node': 16.18.75 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -6270,11 +6337,11 @@ packages: resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} dev: false - /multihashes-sync@1.1.3: - resolution: {integrity: sha512-996qBYdXxol6Pjjw++lsdgrEMI/6S6Su4bt0D/vb5TGpJsqicVxkramwIbuRaJU4WYUTytYPGRru2s626Qkzlw==} + /multihashes-sync@2.0.0: + resolution: {integrity: sha512-hoBamCqXuVmeo4NAY52dbYuUIKHy3/FcqxyKZSbhqicR2SbUjgiY4FoDvE8BV40dPfAJTT6pQpqYeuKxqKwOLQ==} dependencies: '@noble/hashes': 1.3.3 - multiformats: 11.0.2 + multiformats: 13.0.1 dev: false /nanoid@3.3.7: @@ -7230,7 +7297,7 @@ packages: uuid: 3.4.0 dev: false - /terser-webpack-plugin@5.3.10(webpack@5.89.0): + /terser-webpack-plugin@5.3.10(webpack@5.90.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -7251,7 +7318,7 @@ packages: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.89.0 + webpack: 5.90.0 dev: true /terser@5.27.0: @@ -7362,7 +7429,7 @@ packages: yargs-parser: 21.1.1 dev: false - /ts-loader@9.4.4(typescript@4.9.5)(webpack@5.89.0): + /ts-loader@9.4.4(typescript@4.9.5)(webpack@5.90.0): resolution: {integrity: sha512-MLukxDHBl8OJ5Dk3y69IsKVFRA/6MwzEqBgh+OXMPB/OD01KQuWPFd1WAQP8a5PeSCAxfnkhiuWqfmFJzJQt9w==} engines: {node: '>=12.0.0'} peerDependencies: @@ -7374,7 +7441,7 @@ packages: micromatch: 4.0.5 semver: 7.3.7 typescript: 4.9.5 - webpack: 5.89.0 + webpack: 5.90.0 dev: true /tsconfig-paths@3.14.2: @@ -7428,8 +7495,8 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - /type-fest@4.10.0: - resolution: {integrity: sha512-NPaKJsb4wyJ16qc8zBQrWswLKv/YirgBFykvUQ1Iajt2wd+twC8E4hFXdlIXqiMl6kWA0zY8tUJ9ELVAdu5h7w==} + /type-fest@4.10.1: + resolution: {integrity: sha512-7ZnJYTp6uc04uYRISWtiX3DSKB/fxNQT0B5o1OUeCqiQiwF+JC9+rJiZIDrPrNCLLuTqyQmh4VdQqh/ZOkv9MQ==} engines: {node: '>=16'} dev: false @@ -7654,8 +7721,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.89.0: - resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + /webpack@5.90.0: + resolution: {integrity: sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -7685,7 +7752,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.89.0) + terser-webpack-plugin: 5.3.10(webpack@5.90.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/suite/src/__tests__/fast/events.test.ts b/suite/src/__tests__/fast/events.test.ts new file mode 100644 index 00000000..e1aca66d --- /dev/null +++ b/suite/src/__tests__/fast/events.test.ts @@ -0,0 +1,248 @@ +import { describe, expect, test } from '@jest/globals' +import { utilities } from '../../utils/common.js' +import fetch from 'cross-fetch' +import * as random from '@stablelib/random' +import { base64 } from 'multiformats/bases/base64' +import { base16 } from 'multiformats/bases/base16' +import { randomCID, StreamID, EventID } from '@ceramicnetwork/streamid' + +const delay = utilities.delay + +// Environment variables +const CeramicUrls = String(process.env.CERAMIC_URLS).split(',') +const Network = String(process.env.NETWORK) + +function randomEvents(modelID: StreamID, count: number, network = Network, networkOffset = 0) { + let modelEvents = []; + for (let i = 0; i < count; i++) { + modelEvents.push({ + "eventId": base16.encode(EventID.createRandom( + network, + networkOffset, + { + separatorKey: 'model', + separatorValue: modelID.toString(), + } + ).bytes), + "eventData": base64.encode(random.randomBytes(1024)), + }) + } + return modelEvents +} + +async function subscribe(url: string, model: StreamID) { + let response = await fetch(url + `/ceramic/subscribe/model/${model.toString()}?limit=1`) + await response.text() +} + +async function writeEvents(url: string, events: any[]) { + for (let i in events) { + let event = events[i] + let response = await fetch(url + '/ceramic/events', { + method: 'POST', + body: JSON.stringify(event), + }) + await response.text() + } +} +async function readEvents(url: string, model: StreamID) { + let fullUrl = url + `/ceramic/subscribe/model/${model.toString()}` + let response = await fetch(fullUrl) + return await response.json() +} + +function sortModelEvents(events: any[]) { + return JSON.parse(JSON.stringify(events)).sort((a: any, b: any) => { + if (a.eventId > b.eventId) return 1; + if (a.eventId < b.eventId) return -1; + return 0; + }) +} + +// Wait up till retries seconds for all urls to have count events +async function waitForEventCount(urls: string[], model: StreamID, count: number, retries: number) { + for (let r = 0; r < retries; r++) { + let all_good = true; + for (let u in urls) { + let url = urls[u]; + let events = await readEvents(url, model) + if (events.length != count) { + all_good = false; + break; + } + } + if (all_good) { + return + } + await delay(1) + } +} + +describe('events', () => { + const firstNodeUrl = CeramicUrls[0] + const secondNodeUrl = CeramicUrls[1] + + test(`linear sync on ${firstNodeUrl}`, async () => { + const modelID = new StreamID('model', randomCID()) + let modelEvents = randomEvents(modelID, 10); + + // Write all data to one node before subscribing on the other nodes. + // This way the other nodes to a linear download of the data from the first node. + await subscribe(firstNodeUrl, modelID) + await writeEvents(firstNodeUrl, modelEvents) + + // Now subscribe on the other nodes + for (let idx = 1; idx < CeramicUrls.length; idx++) { + let url = CeramicUrls[idx] + await subscribe(url, modelID) + } + + await waitForEventCount(CeramicUrls, modelID, modelEvents.length, 10) + + // Use a sorted expected value for stable tests + const sortedModelEvents = sortModelEvents(modelEvents) + // Validate each node got the events, including the first node + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + let events = await readEvents(url, modelID) + + expect(events).toEqual(sortedModelEvents) + } + }) + + test(`active write sync on ${firstNodeUrl}`, async () => { + const modelID = new StreamID('model', randomCID()) + let modelEvents = randomEvents(modelID, 10); + // Subscribe on all nodes then write the data + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + await subscribe(url, modelID) + } + await writeEvents(firstNodeUrl, modelEvents) + + await waitForEventCount(CeramicUrls, modelID, modelEvents.length, 10) + + // Use a sorted expected value for stable tests + const sortedModelEvents = sortModelEvents(modelEvents) + // Validate each node got the events, including the first node + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + let events = await readEvents(url, modelID) + + expect(events).toEqual(sortedModelEvents) + } + }) + test(`half and half sync on ${firstNodeUrl}`, async () => { + const modelID = new StreamID('model', randomCID()) + let modelEvents = randomEvents(modelID, 20); + // Write half the data before other nodes subscribe + await subscribe(firstNodeUrl, modelID) + let half = Math.ceil(modelEvents.length / 2); + let firstHalf = modelEvents.slice(0, half) + let secondHalf = modelEvents.slice(half, modelEvents.length) + await writeEvents(firstNodeUrl, firstHalf) + + // Now subscribe on the other nodes + for (let idx = 1; idx < CeramicUrls.length; idx++) { + let url = CeramicUrls[idx] + await subscribe(url, modelID) + } + // Write the second half of the data + await writeEvents(firstNodeUrl, secondHalf) + + await waitForEventCount(CeramicUrls, modelID, modelEvents.length, 10) + + // Use a sorted expected value for stable tests + const sortedModelEvents = sortModelEvents(modelEvents) + // Validate each node got the events, including the first node + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + let events = await readEvents(url, modelID) + + expect(events).toEqual(sortedModelEvents) + } + }) + test(`active write sync on two nodes ${firstNodeUrl} ${secondNodeUrl}`, async () => { + const modelID = new StreamID('model', randomCID()) + let modelEvents = randomEvents(modelID, 20); + let half = Math.ceil(modelEvents.length / 2); + let firstHalf = modelEvents.slice(0, half) + let secondHalf = modelEvents.slice(half, modelEvents.length) + + // Subscribe on all nodes then write the data + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + await subscribe(url, modelID) + } + + // Write to both node simultaneously + await Promise.all([writeEvents(firstNodeUrl, firstHalf), writeEvents(secondNodeUrl, secondHalf)]) + + await waitForEventCount(CeramicUrls, modelID, modelEvents.length, 10) + + // Use a sorted expected value for stable tests + const sortedModelEvents = sortModelEvents(modelEvents) + // Validate each node got the events, including the first node + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + let events = await readEvents(url, modelID) + + expect(events).toEqual(sortedModelEvents) + } + }) + test(`active write for many models sync`, async () => { + let modelCount = 10 + let models = [] + for (let m = 0; m < modelCount; m++) { + let modelID = new StreamID('model', randomCID()) + // Generate random events for each model for each node + let events = [] + for (let _ in CeramicUrls) { + events.push(randomEvents(modelID, 2)) + } + models.push({ + 'id': modelID, + 'events': events, + }) + } + + // Subscribe on all nodes to all models then write the data + for (let m in models) { + let model = models[m] + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + await subscribe(url, model.id) + } + } + + // Write to all nodes for all models simultaneously + let writes = [] + for (let m in models) { + let model = models[m] + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + writes.push(writeEvents(url, model.events[idx])) + } + } + await Promise.all(writes) + + + for (let m in models) { + let model = models[m] + let events = model.events.flat(); + + + await waitForEventCount(CeramicUrls, model.id, events.length, 20) + + // Use a sorted expected value for stable tests + const sortedModelEvents = sortModelEvents(events) + // Validate each node got the events, including the first node + for (let idx in CeramicUrls) { + let url = CeramicUrls[idx] + let events = await readEvents(url, model.id) + + expect(events).toEqual(sortedModelEvents) + } + } + }) +}) diff --git a/suite/src/__tests__/fast/helpers.test.ts b/suite/src/__tests__/fast/helpers.test.ts index a2730fbd..32ea8cb5 100644 --- a/suite/src/__tests__/fast/helpers.test.ts +++ b/suite/src/__tests__/fast/helpers.test.ts @@ -10,6 +10,7 @@ const streamID1 = StreamID.fromString( 'kjzl6cwe1jw149zfreoiia0ayfbwxnc3qizfyouw1c6mp9e3ah3smmhqfrppm0z', ) + /** * Tests the behaviors of the 'helpers' functions for doing reads and writes to * DynamoDB. Not meant to be run in production, just used for local testing diff --git a/suite/update.sh b/suite/update.sh index 85b83189..858ee08d 100755 --- a/suite/update.sh +++ b/suite/update.sh @@ -1,9 +1,13 @@ -#!/bin/sh +#!/bin/bash set -e cd $(dirname $0) +# Update to specific label +target=latest + + deps=$(jq -r '.dependencies | keys | .[]' package.json) filtered_deps='' for dep in $deps @@ -11,7 +15,7 @@ do # Look for specific deps we manage case $dep in "dids" | "key-did-provider-ed25519" | "key-did-resolver") - filtered_deps="$filtered_deps $dep@latest" + filtered_deps="$filtered_deps $dep@$target" continue ;; *) @@ -21,7 +25,7 @@ do scope=$(dirname $dep) case $scope in "@ceramicnetwork"|"@composedb") - filtered_deps="$filtered_deps $dep@latest" + filtered_deps="$filtered_deps $dep@$target" ;; *) # Ignore other deps