From 59afa95770eb11749269b90f9fcc7aafdc8daaa7 Mon Sep 17 00:00:00 2001 From: Paul Le Cam Date: Tue, 16 Apr 2024 16:17:00 +0100 Subject: [PATCH] Split points classes (#9) --- .github/workflows/build-test.yml | 8 +- composites/points/composite.json | 2 +- composites/points/schemas/1-init.graphql | 40 +- composites/points/src/definition.ts | 119 ++- composites/points/src/index.ts | 11 +- demo/server/package.json | 2 +- .../server/src/controllers/multiController.ts | 23 +- .../src/controllers/singleController.ts | 70 -- demo/server/src/index.ts | 2 - demo/server/src/routes/single.ts | 38 - demo/simple/README.md | 37 - demo/simple/index.mjs | 38 - demo/simple/package.json | 10 - docs/api/classes/points.GenericReader.md | 158 ++++ docs/api/classes/points.ListWriter.md | 253 +++++++ docs/api/classes/points.PointsReader.md | 111 +-- docs/api/classes/points.PointsWriter.md | 175 ++--- docs/api/classes/points.SetReader.md | 230 ++++++ docs/api/classes/points.SetWriter.md | 327 ++++++++ docs/api/classes/points.SinglePointReader.md | 156 ---- docs/api/classes/points.SinglePointWriter.md | 254 ------- docs/api/modules/points.md | 142 +++- docs/api/modules/points_composite.md | 45 +- libraries/points/package.json | 10 +- libraries/points/src/ceramic.ts | 19 + .../{single-reader.ts => generic-reader.ts} | 45 +- libraries/points/src/index.ts | 12 +- libraries/points/src/list-writer.ts | 47 ++ libraries/points/src/points-reader.ts | 109 ++- libraries/points/src/points-writer.ts | 103 ++- libraries/points/src/set-reader.ts | 33 + libraries/points/src/set-writer.ts | 69 ++ libraries/points/src/single-writer.ts | 54 -- libraries/points/test/lib.test.ts | 234 ++---- package.json | 4 +- pnpm-lock.yaml | 715 +++++++++++++++--- utils/ceramic/package.json | 8 +- 37 files changed, 2303 insertions(+), 1410 deletions(-) delete mode 100644 demo/server/src/controllers/singleController.ts delete mode 100644 demo/server/src/routes/single.ts delete mode 100644 demo/simple/README.md delete mode 100644 demo/simple/index.mjs delete mode 100644 demo/simple/package.json create mode 100644 docs/api/classes/points.GenericReader.md create mode 100644 docs/api/classes/points.ListWriter.md create mode 100644 docs/api/classes/points.SetReader.md create mode 100644 docs/api/classes/points.SetWriter.md delete mode 100644 docs/api/classes/points.SinglePointReader.md delete mode 100644 docs/api/classes/points.SinglePointWriter.md rename libraries/points/src/{single-reader.ts => generic-reader.ts} (57%) create mode 100644 libraries/points/src/list-writer.ts create mode 100644 libraries/points/src/set-reader.ts create mode 100644 libraries/points/src/set-writer.ts delete mode 100644 libraries/points/src/single-writer.ts diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 545e945..7f1a200 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -14,16 +14,16 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Use Node ${{ matrix.node }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - name: Install pnpm id: pnpm-install - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v3 with: version: 8 run_install: false @@ -34,7 +34,7 @@ jobs: run: | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} diff --git a/composites/points/composite.json b/composites/points/composite.json index 71a2cfb..89673ff 100644 --- a/composites/points/composite.json +++ b/composites/points/composite.json @@ -1 +1 @@ -{"version":"1.1","models":{"kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4":[{"jws":{"payload":"AXESIIW9VBgw9lWE6fuy69Neg6qdaqVYY5khOCk1UA6Pb68O","signatures":[{"signature":"fi_HzHWxUNEN7RF656YtUUrh5AOB7IMqrzx-GQLhc7f0SwE7UpHziEiUWCI37jKL0RdxXzxCvslblLKURGaDAA","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreiefxvkbqmhwkwcot65s5pjv5a5ktvvkkwddteqtqkjvkahi635pby"},"linkedBlock":"omRkYXRhqmRuYW1ldkdlbmVyaWNQb2ludEFsbG9jYXRpb25ldmlld3OhZmlzc3VlcqFkdHlwZW9kb2N1bWVudEFjY291bnRmc2NoZW1hpmR0eXBlZm9iamVjdGUkZGVmc6FqR3JhcGhRTERJRKRkdHlwZWZzdHJpbmdldGl0bGVqR3JhcGhRTERJRGdwYXR0ZXJueI9eZGlkOlthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKzpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKjo/W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qJGltYXhMZW5ndGgYZGckc2NoZW1heCxodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYWhyZXF1aXJlZIFpcmVjaXBpZW50anByb3BlcnRpZXOhaXJlY2lwaWVudKFkJHJlZnIjLyRkZWZzL0dyYXBoUUxESUR0YWRkaXRpb25hbFByb3BlcnRpZXP0Z3ZlcnNpb25jMi4waWludGVyZmFjZfVpcmVsYXRpb25zoWlyZWNpcGllbnShZHR5cGVnYWNjb3VudGppbXBsZW1lbnRzgGtkZXNjcmlwdGlvbng2SW50ZXJmYWNlIGZvciBhIGdlbmVyaWMgcG9pbnQgYWxsb2NhdGlvbiB0byBhbiBhY2NvdW50b2FjY291bnRSZWxhdGlvbqFkdHlwZWRub25lb2ltbXV0YWJsZUZpZWxkc4BmaGVhZGVyo2NzZXBlbW9kZWxlbW9kZWxSzgEEAXFxCwAJaG1vZGVsLXYxa2NvbnRyb2xsZXJzgXg4ZGlkOmtleTp6Nk1raVRCejF5bXVlcEFRNEhFSFlTRjFIOHF1RzVHTFZWUVIzZGpkWDNtRG9vV3A="}],"kjzl6hvfrbw6cb6393dpd8blke5w8r7pvbl4449mxetuibcav3oab8fnxmys6d6":[{"jws":{"payload":"AXESILEbRur9tHZU_VdgLnduXmWauZnOsE-E6akVH5y3dPIi","signatures":[{"signature":"4PM1useQFqBDUpdW7N4_6kpgcanZ3oGO14stUfQR2D76B935RT7HWivmyKtjNXFBRjDLUcIkCLDxYZ-KxjEyCA","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreifrdndov7nuozkp2v3afz3w4xtftk4zttvqj6cotkivd6olo5hsei"},"linkedBlock":"omRkYXRhqmRuYW1lcVBvaW50c0FnZ3JlZ2F0aW9uZXZpZXdzoWZpc3N1ZXKhZHR5cGVvZG9jdW1lbnRBY2NvdW50ZnNjaGVtYaZkdHlwZWZvYmplY3RlJGRlZnOiakdyYXBoUUxESUSkZHR5cGVmc3RyaW5nZXRpdGxlakdyYXBoUUxESURncGF0dGVybniPXmRpZDpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSs6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKiRpbWF4TGVuZ3RoGGRvR3JhcGhRTERhdGVUaW1lpGR0eXBlZnN0cmluZ2V0aXRsZW9HcmFwaFFMRGF0ZVRpbWVmZm9ybWF0aWRhdGUtdGltZWltYXhMZW5ndGgYZGckc2NoZW1heCxodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYWhyZXF1aXJlZINpcmVjaXBpZW50ZnBvaW50c2RkYXRlanByb3BlcnRpZXOjZGRhdGWhZCRyZWZ3Iy8kZGVmcy9HcmFwaFFMRGF0ZVRpbWVmcG9pbnRzoWR0eXBlZ2ludGVnZXJpcmVjaXBpZW50oWQkcmVmciMvJGRlZnMvR3JhcGhRTERJRHRhZGRpdGlvbmFsUHJvcGVydGllc/RndmVyc2lvbmMyLjBpaW50ZXJmYWNl9WlyZWxhdGlvbnOhaXJlY2lwaWVudKFkdHlwZWdhY2NvdW50amltcGxlbWVudHOAa2Rlc2NyaXB0aW9ueCBJbnRlcmZhY2UgZm9yIHBvaW50cyBhZ2dyZWdhdGlvbm9hY2NvdW50UmVsYXRpb26hZHR5cGVkbm9uZW9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}],"kjzl6hvfrbw6c5be4exsm7nkkksnqatki8bceyvbgtmcu2bu5vign23b7x4emlb":[{"jws":{"payload":"AXESIGrHZPJHN7tQ7rbITv11_EFgn87p0aPDcKciW-Rnpi9T","signatures":[{"signature":"ycj0FttO0SHeK0ju6-mYfCztVGtzIzzomkGysDEBU_SSLPx3S8_yZrAykb5O2OzNj_X1u1JYSAYhsjVFkReEAg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreidky5sperzxxnio5nwij36xl7cbmcp452orupbxbjzclpsgpjrpkm"},"linkedBlock":"omRkYXRhqmRuYW1la1RvdGFsUG9pbnRzZXZpZXdzoWZpc3N1ZXKhZHR5cGVvZG9jdW1lbnRBY2NvdW50ZnNjaGVtYaZkdHlwZWZvYmplY3RlJGRlZnOiakdyYXBoUUxESUSkZHR5cGVmc3RyaW5nZXRpdGxlakdyYXBoUUxESURncGF0dGVybniPXmRpZDpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSs6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKiRpbWF4TGVuZ3RoGGRvR3JhcGhRTERhdGVUaW1lpGR0eXBlZnN0cmluZ2V0aXRsZW9HcmFwaFFMRGF0ZVRpbWVmZm9ybWF0aWRhdGUtdGltZWltYXhMZW5ndGgYZGckc2NoZW1heCxodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYWhyZXF1aXJlZINpcmVjaXBpZW50ZnBvaW50c2RkYXRlanByb3BlcnRpZXOjZGRhdGWhZCRyZWZ3Iy8kZGVmcy9HcmFwaFFMRGF0ZVRpbWVmcG9pbnRzoWR0eXBlZ2ludGVnZXJpcmVjaXBpZW50oWQkcmVmciMvJGRlZnMvR3JhcGhRTERJRHRhZGRpdGlvbmFsUHJvcGVydGllc/RndmVyc2lvbmMyLjBpaW50ZXJmYWNl9GlyZWxhdGlvbnOhaXJlY2lwaWVudKFkdHlwZWdhY2NvdW50amltcGxlbWVudHOBeD9ranpsNmh2ZnJidzZjYjYzOTNkcGQ4YmxrZTV3OHI3cHZibDQ0NDlteGV0dWliY2F2M29hYjhmbnhteXM2ZDZrZGVzY3JpcHRpb254JVBvaW50cyBhZ2dyZWdhdGlvbiBhdCBhIHNwZWNpZmljIGRhdGVvYWNjb3VudFJlbGF0aW9uomR0eXBlY3NldGZmaWVsZHOBaXJlY2lwaWVudG9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}],"kjzl6hvfrbw6c7ilzfpjw96drd04jadb0aybiklk70ys2imxp5mjbjmgkecgddf":[{"jws":{"payload":"AXESIJ9VPe6nxQFfkg1SFa1lVeNROBRce0_XgLDGAqDtXF2Z","signatures":[{"signature":"Rcj4PptdwafVjPdyNszkpsIty9QaoN1Ov4BrQ8P0nRgjSxnVmnKTMIVT7h9e4lGfAConRU0T3I2e8sAV7xwiAw","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreie7ku665j6fafpzedkscwwwkvpdke4bixd3j7lybmggakqo2xc5te"},"linkedBlock":"omRkYXRhqmRuYW1ldVNpbmdsZVBvaW50QWxsb2NhdGlvbmV2aWV3c6FmaXNzdWVyoWR0eXBlb2RvY3VtZW50QWNjb3VudGZzY2hlbWGmZHR5cGVmb2JqZWN0ZSRkZWZzoWpHcmFwaFFMRElEpGR0eXBlZnN0cmluZ2V0aXRsZWpHcmFwaFFMRElEZ3BhdHRlcm54j15kaWQ6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0rOlthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKjo/W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSokaW1heExlbmd0aBhkZyRzY2hlbWF4LGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1haHJlcXVpcmVkgWlyZWNpcGllbnRqcHJvcGVydGllc6FpcmVjaXBpZW50oWQkcmVmciMvJGRlZnMvR3JhcGhRTERJRHRhZGRpdGlvbmFsUHJvcGVydGllc/RndmVyc2lvbmMyLjBpaW50ZXJmYWNl9WlyZWxhdGlvbnOhaXJlY2lwaWVudKFkdHlwZWdhY2NvdW50amltcGxlbWVudHOBeD9ranpsNmh2ZnJidzZjNm0zbjY0dmIyaDRuOG54cTlqamZiN3NmN2E5eTg5M3NwbTFwamQwZW5yc2RseXBoZzRrZGVzY3JpcHRpb254PEludGVyZmFjZSBmb3IgdGhlIGFsbG9jYXRpb24gb2YgYSBzaW5nbGUgcG9pbnQgdG8gYW4gYWNjb3VudG9hY2NvdW50UmVsYXRpb26hZHR5cGVkbm9uZW9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}],"kjzl6hvfrbw6ca7buvthejhv7vqr85vmpsepzj0mc6665y2zarvjbuvtm3v4kah":[{"jws":{"payload":"AXESIGilp-bINx1y6OLYTTxpjS8gH7bkwXgdfi_5N7p_ter4","signatures":[{"signature":"nX7DW0-1Cor64-m8qHrtf2AL8rxdMzuK5LYkR57qbijYEP_3j9xpUTLjFSCT5RueZiZTWxFNzypTQLDID8rKCQ","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreidiuwt6nsbxdvzorywyju6gtdjpeap3nzgbpaox4l7zg65h7npk7a"},"linkedBlock":"omRkYXRhqmRuYW1leBhNdWx0aXBsZVBvaW50c0FsbG9jYXRpb25ldmlld3OhZmlzc3VlcqFkdHlwZW9kb2N1bWVudEFjY291bnRmc2NoZW1hpmR0eXBlZm9iamVjdGUkZGVmc6FqR3JhcGhRTERJRKRkdHlwZWZzdHJpbmdldGl0bGVqR3JhcGhRTERJRGdwYXR0ZXJueI9eZGlkOlthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKzpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKjo/W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qJGltYXhMZW5ndGgYZGckc2NoZW1heCxodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYWhyZXF1aXJlZIJpcmVjaXBpZW50ZnBvaW50c2pwcm9wZXJ0aWVzomZwb2ludHOhZHR5cGVnaW50ZWdlcmlyZWNpcGllbnShZCRyZWZyIy8kZGVmcy9HcmFwaFFMRElEdGFkZGl0aW9uYWxQcm9wZXJ0aWVz9Gd2ZXJzaW9uYzIuMGlpbnRlcmZhY2X1aXJlbGF0aW9uc6FpcmVjaXBpZW50oWR0eXBlZ2FjY291bnRqaW1wbGVtZW50c4F4P2tqemw2aHZmcmJ3NmM2bTNuNjR2YjJoNG44bnhxOWpqZmI3c2Y3YTl5ODkzc3BtMXBqZDBlbnJzZGx5cGhnNGtkZXNjcmlwdGlvbng9SW50ZXJmYWNlIGZvciB0aGUgYWxsb2NhdGlvbiBvZiBtdWx0aXBsZSBwb2ludHMgdG8gYW4gYWNjb3VudG9hY2NvdW50UmVsYXRpb26hZHR5cGVkbm9uZW9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}],"kjzl6hvfrbw6c9332q9di7qfshxczet94w2tzeubvkbkk9vtuwmya6s9f1bvx9p":[{"jws":{"payload":"AXESIH1o0-6-06mPazvJ0DDFeLIFBUFOcXikr-Q-ieeZxzRJ","signatures":[{"signature":"SWCjiSqgfZ2Cj37_RaMkjb9KDXGla2yA001UdbnwpN6MzJ2Wf9YSh_g-Y0nGDV_zSXpMhiaQv5jIxs4kzJsSAg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreid5ndj65pwtvghwwo6j2aymk6fsaucucttrpcsk7zb6rhtztrzuje"},"linkedBlock":"omRkYXRhqmRuYW1la1NpbmdsZVBvaW50ZXZpZXdzoWZpc3N1ZXKhZHR5cGVvZG9jdW1lbnRBY2NvdW50ZnNjaGVtYaZkdHlwZWZvYmplY3RlJGRlZnOhakdyYXBoUUxESUSkZHR5cGVmc3RyaW5nZXRpdGxlakdyYXBoUUxESURncGF0dGVybniPXmRpZDpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSs6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKiRpbWF4TGVuZ3RoGGRnJHNjaGVtYXgsaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFocmVxdWlyZWSBaXJlY2lwaWVudGpwcm9wZXJ0aWVzoWlyZWNpcGllbnShZCRyZWZyIy8kZGVmcy9HcmFwaFFMRElEdGFkZGl0aW9uYWxQcm9wZXJ0aWVz9Gd2ZXJzaW9uYzIuMGlpbnRlcmZhY2X0aXJlbGF0aW9uc6FpcmVjaXBpZW50oWR0eXBlZ2FjY291bnRqaW1wbGVtZW50c4J4P2tqemw2aHZmcmJ3NmM3aWx6ZnBqdzk2ZHJkMDRqYWRiMGF5YmlrbGs3MHlzMmlteHA1bWpiam1na2VjZ2RkZng/a2p6bDZodmZyYnc2YzZtM242NHZiMmg0bjhueHE5ampmYjdzZjdhOXk4OTNzcG0xcGpkMGVucnNkbHlwaGc0a2Rlc2NyaXB0aW9ueCpBbGxvY2F0aW9uIG9mIGEgc2luZ2xlIHBvaW50IHRvIGFuIGFjY291bnRvYWNjb3VudFJlbGF0aW9uoWR0eXBlZGxpc3RvaW1tdXRhYmxlRmllbGRzgGZoZWFkZXKjY3NlcGVtb2RlbGVtb2RlbFLOAQQBcXELAAlobW9kZWwtdjFrY29udHJvbGxlcnOBeDhkaWQ6a2V5Ono2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcA=="}],"kjzl6hvfrbw6c9fmjjdsbuxnewf0yhvco3dn5mihiogeso6i1csdbw2fq8oeijy":[{"jws":{"payload":"AXESIBRHnaqD2WivGPjSpz5FzuDrRhhZZoMQTmB_F7DTUIUL","signatures":[{"signature":"PDeOzy_1uacPIAedyvZeSty046tmnUKMkhsFhOV8GpEfZJLYZOpwUmry0jrzk3qHsgmeEmjmjnmeFmy77NazDw","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreiaui6o2va6zncxrr6gsu47eltxa5ndbqwlgqmie4yd7c6ynguefbm"},"linkedBlock":"omRkYXRhqmRuYW1lbk11bHRpcGxlUG9pbnRzZXZpZXdzoWZpc3N1ZXKhZHR5cGVvZG9jdW1lbnRBY2NvdW50ZnNjaGVtYaZkdHlwZWZvYmplY3RlJGRlZnOhakdyYXBoUUxESUSkZHR5cGVmc3RyaW5nZXRpdGxlakdyYXBoUUxESURncGF0dGVybniPXmRpZDpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSs6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKiRpbWF4TGVuZ3RoGGRnJHNjaGVtYXgsaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFocmVxdWlyZWSCaXJlY2lwaWVudGZwb2ludHNqcHJvcGVydGllc6JmcG9pbnRzoWR0eXBlZ2ludGVnZXJpcmVjaXBpZW50oWQkcmVmciMvJGRlZnMvR3JhcGhRTERJRHRhZGRpdGlvbmFsUHJvcGVydGllc/RndmVyc2lvbmMyLjBpaW50ZXJmYWNl9GlyZWxhdGlvbnOhaXJlY2lwaWVudKFkdHlwZWdhY2NvdW50amltcGxlbWVudHOCeD9ranpsNmh2ZnJidzZjYTdidXZ0aGVqaHY3dnFyODV2bXBzZXB6ajBtYzY2NjV5MnphcnZqYnV2dG0zdjRrYWh4P2tqemw2aHZmcmJ3NmM2bTNuNjR2YjJoNG44bnhxOWpqZmI3c2Y3YTl5ODkzc3BtMXBqZDBlbnJzZGx5cGhnNGtkZXNjcmlwdGlvbngrQWxsb2NhdGlvbiBvZiBtdWx0aXBsZSBwb2ludHMgdG8gYW4gYWNjb3VudG9hY2NvdW50UmVsYXRpb26hZHR5cGVkbGlzdG9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}]},"indices":{"kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4":[],"kjzl6hvfrbw6cb6393dpd8blke5w8r7pvbl4449mxetuibcav3oab8fnxmys6d6":[],"kjzl6hvfrbw6c5be4exsm7nkkksnqatki8bceyvbgtmcu2bu5vign23b7x4emlb":[],"kjzl6hvfrbw6c7ilzfpjw96drd04jadb0aybiklk70ys2imxp5mjbjmgkecgddf":[],"kjzl6hvfrbw6ca7buvthejhv7vqr85vmpsepzj0mc6665y2zarvjbuvtm3v4kah":[],"kjzl6hvfrbw6c9332q9di7qfshxczet94w2tzeubvkbkk9vtuwmya6s9f1bvx9p":[],"kjzl6hvfrbw6c9fmjjdsbuxnewf0yhvco3dn5mihiogeso6i1csdbw2fq8oeijy":[]},"aliases":{"kjzl6hvfrbw6cb6393dpd8blke5w8r7pvbl4449mxetuibcav3oab8fnxmys6d6":"PointsAggregation","kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4":"GenericPointAllocation","kjzl6hvfrbw6c5be4exsm7nkkksnqatki8bceyvbgtmcu2bu5vign23b7x4emlb":"TotalPoints","kjzl6hvfrbw6c7ilzfpjw96drd04jadb0aybiklk70ys2imxp5mjbjmgkecgddf":"SinglePointAllocation","kjzl6hvfrbw6ca7buvthejhv7vqr85vmpsepzj0mc6665y2zarvjbuvtm3v4kah":"MultiplePointsAllocation","kjzl6hvfrbw6c9332q9di7qfshxczet94w2tzeubvkbkk9vtuwmya6s9f1bvx9p":"SinglePoint","kjzl6hvfrbw6c9fmjjdsbuxnewf0yhvco3dn5mihiogeso6i1csdbw2fq8oeijy":"MultiplePoints"},"views":{"account":{},"root":{},"models":{"kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4":{},"kjzl6hvfrbw6cb6393dpd8blke5w8r7pvbl4449mxetuibcav3oab8fnxmys6d6":{},"kjzl6hvfrbw6c5be4exsm7nkkksnqatki8bceyvbgtmcu2bu5vign23b7x4emlb":{},"kjzl6hvfrbw6c7ilzfpjw96drd04jadb0aybiklk70ys2imxp5mjbjmgkecgddf":{},"kjzl6hvfrbw6ca7buvthejhv7vqr85vmpsepzj0mc6665y2zarvjbuvtm3v4kah":{},"kjzl6hvfrbw6c9332q9di7qfshxczet94w2tzeubvkbkk9vtuwmya6s9f1bvx9p":{},"kjzl6hvfrbw6c9fmjjdsbuxnewf0yhvco3dn5mihiogeso6i1csdbw2fq8oeijy":{}}},"commonEmbeds":[]} +{"version":"1.1","models":{"kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo":[{"jws":{"payload":"AXESINtobkWyMBlV381m5vCoL5e1JaePHopnxnTXRRM-K1aZ","signatures":[{"signature":"AvGRjkwaj4KTAM3I-tSvCbqlW-Uh--D2OR-GQpWauH8FY2y2yrtLt_rcX54LrvZfy91yuCCy65rsYJPuqliaAg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreig3nbxelmrqdfk57tlg43ykql4xwus2pdy6rjt4m5gxiujt4k2wte"},"linkedBlock":"omRkYXRhqmRuYW1lb1BvaW50c0ludGVyZmFjZWV2aWV3c6FmaXNzdWVyoWR0eXBlb2RvY3VtZW50QWNjb3VudGZzY2hlbWGmZHR5cGVmb2JqZWN0ZSRkZWZzoWpHcmFwaFFMRElEpGR0eXBlZnN0cmluZ2V0aXRsZWpHcmFwaFFMRElEZ3BhdHRlcm54j15kaWQ6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0rOlthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKjo/W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSokaW1heExlbmd0aBhkZyRzY2hlbWF4LGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1haHJlcXVpcmVkgmlyZWNpcGllbnRmcG9pbnRzanByb3BlcnRpZXOiZnBvaW50c6FkdHlwZWdpbnRlZ2VyaXJlY2lwaWVudKFkJHJlZnIjLyRkZWZzL0dyYXBoUUxESUR0YWRkaXRpb25hbFByb3BlcnRpZXP0Z3ZlcnNpb25jMi4waWludGVyZmFjZfVpcmVsYXRpb25zoWlyZWNpcGllbnShZHR5cGVnYWNjb3VudGppbXBsZW1lbnRzgGtkZXNjcmlwdGlvbng4SW50ZXJmYWNlIGZvciBhIGdlbmVyaWMgcG9pbnRzIGFzc29jaWF0aW9uIHRvIGFuIGFjY291bnRvYWNjb3VudFJlbGF0aW9uoWR0eXBlZG5vbmVvaW1tdXRhYmxlRmllbGRzgGZoZWFkZXKjY3NlcGVtb2RlbGVtb2RlbFLOAQQBcXELAAlobW9kZWwtdjFrY29udHJvbGxlcnOBeDhkaWQ6a2V5Ono2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcA=="}],"kjzl6hvfrbw6cakj74rf7d3qjnm3xoydcgx7orzw4bwdmc6kljd04uojuhpef2j":[{"jws":{"payload":"AXESIHdwJbEAd1czmvtrPSXnL8_EEGzmyIQjimDiGxJwM3gk","signatures":[{"signature":"d70VIaDtbp-pGiy5i2wYdV_JqhOYJLFYqBUesqt8X8B-fAw-mPNr1bRcp4-iCRyO4Jb7L7f7ikjhcuRY4IPxDw","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreidxoas3cadxk4zzv63lhus6ol6pyqigzzwiqqryuyhcdmjham3yeq"},"linkedBlock":"omRkYXRhqmRuYW1leBlQb2ludHNBbGxvY2F0aW9uSW50ZXJmYWNlZXZpZXdzoWZpc3N1ZXKhZHR5cGVvZG9jdW1lbnRBY2NvdW50ZnNjaGVtYaZkdHlwZWZvYmplY3RlJGRlZnOhakdyYXBoUUxESUSkZHR5cGVmc3RyaW5nZXRpdGxlakdyYXBoUUxESURncGF0dGVybniPXmRpZDpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSs6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKiRpbWF4TGVuZ3RoGGRnJHNjaGVtYXgsaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFocmVxdWlyZWSCaXJlY2lwaWVudGZwb2ludHNqcHJvcGVydGllc6JmcG9pbnRzoWR0eXBlZ2ludGVnZXJpcmVjaXBpZW50oWQkcmVmciMvJGRlZnMvR3JhcGhRTERJRHRhZGRpdGlvbmFsUHJvcGVydGllc/RndmVyc2lvbmMyLjBpaW50ZXJmYWNl9WlyZWxhdGlvbnOhaXJlY2lwaWVudKFkdHlwZWdhY2NvdW50amltcGxlbWVudHOBeD9ranpsNmh2ZnJidzZjNmx4dmNmOGJjMDd3anluMjlvY294cW44Nzd1aWExeTg2cXBoNzlheHRkcmN1aWpwZW9rZGVzY3JpcHRpb254OUludGVyZmFjZSBmb3IgYSBzaW5nbGUgYWxsb2NhdGlvbiBvZiBwb2ludHMgdG8gYW4gYWNjb3VudG9hY2NvdW50UmVsYXRpb26hZHR5cGVkbm9uZW9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}],"kjzl6hvfrbw6c5m5bxe6jl7cocyxpg9b8em5w9mo3l8ws4zl5c0tu5vgapitpvk":[{"jws":{"payload":"AXESILkq4fQGondBge7o79syZ2WG5SwFp7VQ_DBsqDlHtzpO","signatures":[{"signature":"URH315iV6peuplx1j0Uvdi-_hoe4gWZLtImo5iK8tsvlmiUs76hwzGb6EiOXHUCBO9MsnwDCfsBagKajBB1nDg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreifzflq7ibvco5ayd3xi57ntez3fq3ssybnhwvipymdmva4upnz2jy"},"linkedBlock":"omRkYXRhqmRuYW1leBpQb2ludHNBZ2dyZWdhdGlvbkludGVyZmFjZWV2aWV3c6FmaXNzdWVyoWR0eXBlb2RvY3VtZW50QWNjb3VudGZzY2hlbWGmZHR5cGVmb2JqZWN0ZSRkZWZzompHcmFwaFFMRElEpGR0eXBlZnN0cmluZ2V0aXRsZWpHcmFwaFFMRElEZ3BhdHRlcm54j15kaWQ6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0rOlthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKjo/W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSokaW1heExlbmd0aBhkb0dyYXBoUUxEYXRlVGltZaRkdHlwZWZzdHJpbmdldGl0bGVvR3JhcGhRTERhdGVUaW1lZmZvcm1hdGlkYXRlLXRpbWVpbWF4TGVuZ3RoGGRnJHNjaGVtYXgsaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFocmVxdWlyZWSDaXJlY2lwaWVudGZwb2ludHNkZGF0ZWpwcm9wZXJ0aWVzo2RkYXRloWQkcmVmdyMvJGRlZnMvR3JhcGhRTERhdGVUaW1lZnBvaW50c6FkdHlwZWdpbnRlZ2VyaXJlY2lwaWVudKFkJHJlZnIjLyRkZWZzL0dyYXBoUUxESUR0YWRkaXRpb25hbFByb3BlcnRpZXP0Z3ZlcnNpb25jMi4waWludGVyZmFjZfVpcmVsYXRpb25zoWlyZWNpcGllbnShZHR5cGVnYWNjb3VudGppbXBsZW1lbnRzgXg/a2p6bDZodmZyYnc2YzZseHZjZjhiYzA3d2p5bjI5b2NveHFuODc3dWlhMXk4NnFwaDc5YXh0ZHJjdWlqcGVva2Rlc2NyaXB0aW9ueDRJbnRlcmZhY2UgZm9yIGFuIGFnZ3JlZ2F0aW9uIG9mIHBvaW50cyB0byBhbiBhY2NvdW50b2FjY291bnRSZWxhdGlvbqFkdHlwZWRub25lb2ltbXV0YWJsZUZpZWxkc4BmaGVhZGVyo2NzZXBlbW9kZWxlbW9kZWxSzgEEAXFxCwAJaG1vZGVsLXYxa2NvbnRyb2xsZXJzgXg4ZGlkOmtleTp6Nk1raVRCejF5bXVlcEFRNEhFSFlTRjFIOHF1RzVHTFZWUVIzZGpkWDNtRG9vV3A="}],"kjzl6hvfrbw6c9rahz7aal75i0ncxkf5wmircmtpz2s34xls8ux1p08ic655oek":[{"jws":{"payload":"AXESIJI8d0EzGXmMXHdOGpan7VeClShUpPcEP8_jwAQcWWWM","signatures":[{"signature":"JI7h3fa3KFsVJlRjjhFfH2fxXtblRCkTqJrUBDh1tyBl9Dl0JuO_Du-Cp2uejgqcpCuC5ZE18JtQdTDt7eXuDQ","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreieshr3ucmyzpggfy52odklkp3kxqkksqvfe64cd7t7dyacbywlfrq"},"linkedBlock":"omRkYXRhqmRuYW1ldlNpbXBsZVBvaW50c0FsbG9jYXRpb25ldmlld3OhZmlzc3VlcqFkdHlwZW9kb2N1bWVudEFjY291bnRmc2NoZW1hpmR0eXBlZm9iamVjdGUkZGVmc6FqR3JhcGhRTERJRKRkdHlwZWZzdHJpbmdldGl0bGVqR3JhcGhRTERJRGdwYXR0ZXJueI9eZGlkOlthLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKzpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKjo/W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qJGltYXhMZW5ndGgYZGckc2NoZW1heCxodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYWhyZXF1aXJlZIJpcmVjaXBpZW50ZnBvaW50c2pwcm9wZXJ0aWVzomZwb2ludHOhZHR5cGVnaW50ZWdlcmlyZWNpcGllbnShZCRyZWZyIy8kZGVmcy9HcmFwaFFMRElEdGFkZGl0aW9uYWxQcm9wZXJ0aWVz9Gd2ZXJzaW9uYzIuMGlpbnRlcmZhY2X0aXJlbGF0aW9uc6FpcmVjaXBpZW50oWR0eXBlZ2FjY291bnRqaW1wbGVtZW50c4J4P2tqemw2aHZmcmJ3NmNha2o3NHJmN2QzcWpubTN4b3lkY2d4N29yenc0YndkbWM2a2xqZDA0dW9qdWhwZWYyang/a2p6bDZodmZyYnc2YzZseHZjZjhiYzA3d2p5bjI5b2NveHFuODc3dWlhMXk4NnFwaDc5YXh0ZHJjdWlqcGVva2Rlc2NyaXB0aW9ueCZTaW1wbGUgcG9pbnRzIGFsbG9jYXRpb24gdG8gYW4gYWNjb3VudG9hY2NvdW50UmVsYXRpb26hZHR5cGVkbGlzdG9pbW11dGFibGVGaWVsZHOAZmhlYWRlcqNjc2VwZW1vZGVsZW1vZGVsUs4BBAFxcQsACWhtb2RlbC12MWtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dw"}],"kjzl6hvfrbw6capj3or1esf65c1jbluhky3t2wupxefeuocqt5lz5u4gum07o24":[{"jws":{"payload":"AXESINU0jJJiAe5hSsd0iDx2o5Mst0U8TW76aOlN-h98_Sdx","signatures":[{"signature":"IheLhTPvua3YeT8mqa4dwlX2M9BPHG73WO9JBiBWwJ7NeeRowcrn5xVGDEmH0OQOsdkPpDjTk37FTUP2WATQBg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2lUQnoxeW11ZXBBUTRIRUhZU0YxSDhxdUc1R0xWVlFSM2RqZFgzbURvb1dwI3o2TWtpVEJ6MXltdWVwQVE0SEVIWVNGMUg4cXVHNUdMVlZRUjNkamRYM21Eb29XcCJ9"}],"link":"bafyreigvgsgjeyqb5zquvr3ura6hni4tfs3ukpcnn35gr2kn7ipxz7jhoe"},"linkedBlock":"omRkYXRhqmRuYW1ld1NpbXBsZVBvaW50c0FnZ3JlZ2F0aW9uZXZpZXdzoWZpc3N1ZXKhZHR5cGVvZG9jdW1lbnRBY2NvdW50ZnNjaGVtYaZkdHlwZWZvYmplY3RlJGRlZnOiakdyYXBoUUxESUSkZHR5cGVmc3RyaW5nZXRpdGxlakdyYXBoUUxESURncGF0dGVybniPXmRpZDpbYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSs6W2EtekEtWjAtOS4hIyQlJicqK1wvPT9eX2B7fH1+LV0qOj9bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXSo6P1thLXpBLVowLTkuISMkJSYnKitcLz0/Xl9ge3x9fi1dKiRpbWF4TGVuZ3RoGGRvR3JhcGhRTERhdGVUaW1lpGR0eXBlZnN0cmluZ2V0aXRsZW9HcmFwaFFMRGF0ZVRpbWVmZm9ybWF0aWRhdGUtdGltZWltYXhMZW5ndGgYZGckc2NoZW1heCxodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYWhyZXF1aXJlZINpcmVjaXBpZW50ZnBvaW50c2RkYXRlanByb3BlcnRpZXOjZGRhdGWhZCRyZWZ3Iy8kZGVmcy9HcmFwaFFMRGF0ZVRpbWVmcG9pbnRzoWR0eXBlZ2ludGVnZXJpcmVjaXBpZW50oWQkcmVmciMvJGRlZnMvR3JhcGhRTERJRHRhZGRpdGlvbmFsUHJvcGVydGllc/RndmVyc2lvbmMyLjBpaW50ZXJmYWNl9GlyZWxhdGlvbnOhaXJlY2lwaWVudKFkdHlwZWdhY2NvdW50amltcGxlbWVudHOCeD9ranpsNmh2ZnJidzZjNW01YnhlNmpsN2NvY3l4cGc5YjhlbTV3OW1vM2w4d3M0emw1YzB0dTV2Z2FwaXRwdmt4P2tqemw2aHZmcmJ3NmM2bHh2Y2Y4YmMwN3dqeW4yOW9jb3hxbjg3N3VpYTF5ODZxcGg3OWF4dGRyY3VpanBlb2tkZXNjcmlwdGlvbng6U2ltcGxlIHBvaW50cyBhZ2dyZWdhdGlvbiB0byBhbiBhY2NvdW50IGF0IGEgc3BlY2lmaWMgZGF0ZW9hY2NvdW50UmVsYXRpb26iZHR5cGVjc2V0ZmZpZWxkc4FpcmVjaXBpZW50b2ltbXV0YWJsZUZpZWxkc4BmaGVhZGVyo2NzZXBlbW9kZWxlbW9kZWxSzgEEAXFxCwAJaG1vZGVsLXYxa2NvbnRyb2xsZXJzgXg4ZGlkOmtleTp6Nk1raVRCejF5bXVlcEFRNEhFSFlTRjFIOHF1RzVHTFZWUVIzZGpkWDNtRG9vV3A="}]},"indices":{"kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo":[],"kjzl6hvfrbw6cakj74rf7d3qjnm3xoydcgx7orzw4bwdmc6kljd04uojuhpef2j":[],"kjzl6hvfrbw6c5m5bxe6jl7cocyxpg9b8em5w9mo3l8ws4zl5c0tu5vgapitpvk":[],"kjzl6hvfrbw6c9rahz7aal75i0ncxkf5wmircmtpz2s34xls8ux1p08ic655oek":[],"kjzl6hvfrbw6capj3or1esf65c1jbluhky3t2wupxefeuocqt5lz5u4gum07o24":[]},"aliases":{"kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo":"PointsInterface","kjzl6hvfrbw6cakj74rf7d3qjnm3xoydcgx7orzw4bwdmc6kljd04uojuhpef2j":"PointsAllocationInterface","kjzl6hvfrbw6c5m5bxe6jl7cocyxpg9b8em5w9mo3l8ws4zl5c0tu5vgapitpvk":"PointsAggregationInterface","kjzl6hvfrbw6c9rahz7aal75i0ncxkf5wmircmtpz2s34xls8ux1p08ic655oek":"SimplePointsAllocation","kjzl6hvfrbw6capj3or1esf65c1jbluhky3t2wupxefeuocqt5lz5u4gum07o24":"SimplePointsAggregation"},"views":{"account":{},"root":{},"models":{"kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo":{},"kjzl6hvfrbw6cakj74rf7d3qjnm3xoydcgx7orzw4bwdmc6kljd04uojuhpef2j":{},"kjzl6hvfrbw6c5m5bxe6jl7cocyxpg9b8em5w9mo3l8ws4zl5c0tu5vgapitpvk":{},"kjzl6hvfrbw6c9rahz7aal75i0ncxkf5wmircmtpz2s34xls8ux1p08ic655oek":{},"kjzl6hvfrbw6capj3or1esf65c1jbluhky3t2wupxefeuocqt5lz5u4gum07o24":{}}},"commonEmbeds":[]} diff --git a/composites/points/schemas/1-init.graphql b/composites/points/schemas/1-init.graphql index c6ac7ae..3ad701f 100644 --- a/composites/points/schemas/1-init.graphql +++ b/composites/points/schemas/1-init.graphql @@ -1,35 +1,27 @@ # -# Generic interface used by all point allocations +# Generic interface used by all point allocations and aggregations # -interface GenericPointAllocation - @createModel(description: "Interface for a generic point allocation to an account") { - issuer: DID! @documentAccount - recipient: DID! @accountReference -} - -# -# Interface specific to a single point allocation -# - -interface SinglePointAllocation implements GenericPointAllocation - @createModel(description: "Interface for the allocation of a single point to an account") { +interface PointsInterface + @createModel(description: "Interface for a generic points association to an account") { issuer: DID! @documentAccount recipient: DID! @accountReference + points: Int! } # -# Interfaces for multiple points allocation and aggregations +# Interfaces for points allocations and aggregations # -interface MultiplePointsAllocation implements GenericPointAllocation - @createModel(description: "Interface for the allocation of multiple points to an account") { +interface PointsAllocationInterface implements PointsInterface + @createModel(description: "Interface for a single allocation of points to an account") { issuer: DID! @documentAccount recipient: DID! @accountReference points: Int! } -interface PointsAggregation @createModel(description: "Interface for points aggregation") { +interface PointsAggregationInterface implements PointsInterface + @createModel(description: "Interface for an aggregation of points to an account") { issuer: DID! @documentAccount recipient: DID! @accountReference points: Int! @@ -40,22 +32,16 @@ interface PointsAggregation @createModel(description: "Interface for points aggr # Default models implementing the interfaces # -type SinglePoint implements SinglePointAllocation - @createModel(description: "Allocation of a single point to an account") { - issuer: DID! @documentAccount - recipient: DID! @accountReference -} - -type MultiplePoints implements MultiplePointsAllocation - @createModel(description: "Allocation of multiple points to an account") { +type SimplePointsAllocation implements PointsAllocationInterface + @createModel(description: "Simple points allocation to an account") { issuer: DID! @documentAccount recipient: DID! @accountReference points: Int! } -type TotalPoints implements PointsAggregation +type SimplePointsAggregation implements PointsAggregationInterface @createModel( - description: "Points aggregation at a specific date" + description: "Simple points aggregation to an account at a specific date" accountRelation: SET accountRelationFields: ["recipient"] ) { diff --git a/composites/points/src/definition.ts b/composites/points/src/definition.ts index c6026c2..fcef119 100644 --- a/composites/points/src/definition.ts +++ b/composites/points/src/definition.ts @@ -2,128 +2,109 @@ import type { RuntimeCompositeDefinition } from '@composedb/types' export const definition: RuntimeCompositeDefinition = { models: { - GenericPointAllocation: { + PointsAggregationInterface: { interface: true, - implements: [], - id: 'kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4', + implements: ['kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo'], + id: 'kjzl6hvfrbw6c5m5bxe6jl7cocyxpg9b8em5w9mo3l8ws4zl5c0tu5vgapitpvk', accountRelation: { type: 'none' }, }, - MultiplePoints: { - interface: false, - implements: [ - 'kjzl6hvfrbw6ca7buvthejhv7vqr85vmpsepzj0mc6665y2zarvjbuvtm3v4kah', - 'kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4', - ], - id: 'kjzl6hvfrbw6c9fmjjdsbuxnewf0yhvco3dn5mihiogeso6i1csdbw2fq8oeijy', - accountRelation: { type: 'list' }, - }, - MultiplePointsAllocation: { + PointsAllocationInterface: { interface: true, - implements: ['kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4'], - id: 'kjzl6hvfrbw6ca7buvthejhv7vqr85vmpsepzj0mc6665y2zarvjbuvtm3v4kah', + implements: ['kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo'], + id: 'kjzl6hvfrbw6cakj74rf7d3qjnm3xoydcgx7orzw4bwdmc6kljd04uojuhpef2j', accountRelation: { type: 'none' }, }, - PointsAggregation: { + PointsInterface: { interface: true, implements: [], - id: 'kjzl6hvfrbw6cb6393dpd8blke5w8r7pvbl4449mxetuibcav3oab8fnxmys6d6', + id: 'kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo', accountRelation: { type: 'none' }, }, - SinglePoint: { + SimplePointsAggregation: { interface: false, implements: [ - 'kjzl6hvfrbw6c7ilzfpjw96drd04jadb0aybiklk70ys2imxp5mjbjmgkecgddf', - 'kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4', + 'kjzl6hvfrbw6c5m5bxe6jl7cocyxpg9b8em5w9mo3l8ws4zl5c0tu5vgapitpvk', + 'kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo', ], - id: 'kjzl6hvfrbw6c9332q9di7qfshxczet94w2tzeubvkbkk9vtuwmya6s9f1bvx9p', - accountRelation: { type: 'list' }, - }, - SinglePointAllocation: { - interface: true, - implements: ['kjzl6hvfrbw6c6m3n64vb2h4n8nxq9jjfb7sf7a9y893spm1pjd0enrsdlyphg4'], - id: 'kjzl6hvfrbw6c7ilzfpjw96drd04jadb0aybiklk70ys2imxp5mjbjmgkecgddf', - accountRelation: { type: 'none' }, + id: 'kjzl6hvfrbw6capj3or1esf65c1jbluhky3t2wupxefeuocqt5lz5u4gum07o24', + accountRelation: { type: 'set', fields: ['recipient'] }, }, - TotalPoints: { + SimplePointsAllocation: { interface: false, - implements: ['kjzl6hvfrbw6cb6393dpd8blke5w8r7pvbl4449mxetuibcav3oab8fnxmys6d6'], - id: 'kjzl6hvfrbw6c5be4exsm7nkkksnqatki8bceyvbgtmcu2bu5vign23b7x4emlb', - accountRelation: { type: 'set', fields: ['recipient'] }, + implements: [ + 'kjzl6hvfrbw6cakj74rf7d3qjnm3xoydcgx7orzw4bwdmc6kljd04uojuhpef2j', + 'kjzl6hvfrbw6c6lxvcf8bc07wjyn29ocoxqn877uia1y86qph79axtdrcuijpeo', + ], + id: 'kjzl6hvfrbw6c9rahz7aal75i0ncxkf5wmircmtpz2s34xls8ux1p08ic655oek', + accountRelation: { type: 'list' }, }, }, objects: { - GenericPointAllocation: { + PointsAggregationInterface: { + date: { type: 'datetime', required: true, immutable: false }, + points: { type: 'integer', required: true, immutable: false }, recipient: { type: 'did', required: true, immutable: false }, issuer: { type: 'view', viewType: 'documentAccount' }, }, - MultiplePoints: { + PointsAllocationInterface: { points: { type: 'integer', required: true, immutable: false }, recipient: { type: 'did', required: true, immutable: false }, issuer: { type: 'view', viewType: 'documentAccount' }, }, - MultiplePointsAllocation: { + PointsInterface: { points: { type: 'integer', required: true, immutable: false }, recipient: { type: 'did', required: true, immutable: false }, issuer: { type: 'view', viewType: 'documentAccount' }, }, - PointsAggregation: { + SimplePointsAggregation: { date: { type: 'datetime', required: true, immutable: false }, points: { type: 'integer', required: true, immutable: false }, - recipient: { type: 'did', required: true, immutable: false }, - issuer: { type: 'view', viewType: 'documentAccount' }, - }, - SinglePoint: { - recipient: { type: 'did', required: true, immutable: false }, - issuer: { type: 'view', viewType: 'documentAccount' }, - }, - SinglePointAllocation: { - recipient: { type: 'did', required: true, immutable: false }, + recipient: { type: 'did', required: true, immutable: true }, issuer: { type: 'view', viewType: 'documentAccount' }, }, - TotalPoints: { - date: { type: 'datetime', required: true, immutable: false }, + SimplePointsAllocation: { points: { type: 'integer', required: true, immutable: false }, - recipient: { type: 'did', required: true, immutable: true }, + recipient: { type: 'did', required: true, immutable: false }, issuer: { type: 'view', viewType: 'documentAccount' }, }, }, enums: {}, accountData: { - genericPointAllocationList: { type: 'connection', name: 'GenericPointAllocation' }, - multiplePointsAllocationList: { type: 'connection', name: 'MultiplePointsAllocation' }, - multiplePointsList: { type: 'connection', name: 'MultiplePoints' }, - pointsAggregationList: { type: 'connection', name: 'PointsAggregation' }, - recipientOfGenericPointAllocationList: { + pointsAggregationInterfaceList: { type: 'connection', name: 'PointsAggregationInterface' }, + pointsAllocationInterfaceList: { type: 'connection', name: 'PointsAllocationInterface' }, + pointsInterfaceList: { type: 'connection', name: 'PointsInterface' }, + recipientOfPointsAggregationInterfaceList: { type: 'account', - name: 'GenericPointAllocation', + name: 'PointsAggregationInterface', property: 'recipient', }, - recipientOfMultiplePointsAllocationList: { + recipientOfPointsAllocationInterfaceList: { type: 'account', - name: 'MultiplePointsAllocation', + name: 'PointsAllocationInterface', property: 'recipient', }, - recipientOfMultiplePointsList: { + recipientOfPointsInterfaceList: { type: 'account', - name: 'MultiplePoints', + name: 'PointsInterface', + property: 'recipient', + }, + recipientOfSimplePointsAggregation: { + type: 'account-set', + name: 'SimplePointsAggregation', property: 'recipient', }, - recipientOfPointsAggregationList: { + recipientOfSimplePointsAggregationList: { type: 'account', - name: 'PointsAggregation', + name: 'SimplePointsAggregation', property: 'recipient', }, - recipientOfSinglePointAllocationList: { + recipientOfSimplePointsAllocationList: { type: 'account', - name: 'SinglePointAllocation', + name: 'SimplePointsAllocation', property: 'recipient', }, - recipientOfSinglePointList: { type: 'account', name: 'SinglePoint', property: 'recipient' }, - recipientOfTotalPoints: { type: 'account-set', name: 'TotalPoints', property: 'recipient' }, - recipientOfTotalPointsList: { type: 'account', name: 'TotalPoints', property: 'recipient' }, - singlePointAllocationList: { type: 'connection', name: 'SinglePointAllocation' }, - singlePointList: { type: 'connection', name: 'SinglePoint' }, - totalPoints: { type: 'set', name: 'TotalPoints' }, - totalPointsList: { type: 'connection', name: 'TotalPoints' }, + simplePointsAggregation: { type: 'set', name: 'SimplePointsAggregation' }, + simplePointsAggregationList: { type: 'connection', name: 'SimplePointsAggregation' }, + simplePointsAllocationList: { type: 'connection', name: 'SimplePointsAllocation' }, }, } diff --git a/composites/points/src/index.ts b/composites/points/src/index.ts index 3f128f4..0e4d304 100644 --- a/composites/points/src/index.ts +++ b/composites/points/src/index.ts @@ -2,4 +2,13 @@ * @module points-composite */ -export { definition } from './definition.js' +import { definition } from './definition.js' + +export { definition } +export const SimplePointsAggregationID = definition.models.SimplePointsAggregation.id +export const SimplePointsAllocationID = definition.models.SimplePointsAllocation.id + +export type PointsContent = { + recipient: string // DID + points: number +} diff --git a/demo/server/package.json b/demo/server/package.json index 3e62e05..9737c03 100644 --- a/demo/server/package.json +++ b/demo/server/package.json @@ -47,7 +47,7 @@ "uint8arrays": "^5.0.3" }, "dependencies": { - "@ceramicnetwork/http-client": "^5.6.0", + "@ceramicnetwork/http-client": "^5.7.0", "body-parser": "^1.20.2", "cors": "^2.8.5", "dotenv": "^16.3.1", diff --git a/demo/server/src/controllers/multiController.ts b/demo/server/src/controllers/multiController.ts index 97f83f0..6c0c2b7 100644 --- a/demo/server/src/controllers/multiController.ts +++ b/demo/server/src/controllers/multiController.ts @@ -47,7 +47,7 @@ const getContextAggregation = async ( const { recipient, context } = req.body //instantiate a reader - const reader = new PointsReader({ + const reader = PointsReader.create({ ceramic, issuer: ceramic.did!.id, aggregationModelID, @@ -75,7 +75,7 @@ const getTotalAggregation = async ( const { recipient } = req.body //instantiate a reader - const reader = new PointsReader({ + const reader = PointsReader.create({ ceramic, issuer: ceramic.did!.id, }) @@ -101,20 +101,14 @@ const updateContextAggregation = async ( const { ceramic, aggregationModelID } = await getContext() const { amount, recipient, context } = req.body - //instantiate a writer and reader - const contextWriter = new PointsWriter({ + //instantiate a writer + const contextWriter = PointsWriter.fromAuthenticated({ ceramic, aggregationModelID, }) - const contextReader = new PointsReader({ - ceramic, - issuer: ceramic.did!.id, - aggregationModelID, - }) - // load the document for the recipient and context - const doc = await contextReader.loadAggregationDocumentFor([recipient, context]) + const doc = await contextWriter.loadAggregationDocumentFor([recipient, context]) if (!doc) { await contextWriter.setPointsAggregationFor([recipient, context], amount, { recipient, @@ -159,12 +153,11 @@ const updateTotalAggregation = async ( const { ceramic } = await getContext() const { amount, recipient } = req.body - //instantiate a writer and reader - const totalWriter = new PointsWriter({ ceramic }) - const totalReader = new PointsReader({ ceramic, issuer: ceramic.did!.id }) + //instantiate a writer + const totalWriter = PointsWriter.fromAuthenticated({ ceramic }) // load the document for the recipient and context - const doc = await totalReader.loadAggregationDocumentFor([recipient]) + const doc = await totalWriter.loadAggregationDocumentFor([recipient]) if (!doc) { await totalWriter.setPointsAggregationFor([recipient], amount, { recipient, diff --git a/demo/server/src/controllers/singleController.ts b/demo/server/src/controllers/singleController.ts deleted file mode 100644 index 144e795..0000000 --- a/demo/server/src/controllers/singleController.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { getContext } from '../utils/context.js' -import { Request, Response, NextFunction } from 'express' -import { SinglePointReader, SinglePointWriter } from '@ceramic-solutions/points' - -export interface CreateSinglePointRequest extends Request { - body: { - recipient: string - } -} - -const createSinglePoint = async ( - req: CreateSinglePointRequest, - res: Response, - next: NextFunction, -) => { - try { - const { ceramic } = await getContext() - const writer = new SinglePointWriter({ ceramic }) - await writer.addPointTo(req.body.recipient) - res.locals.ceramic = ceramic - return next() - } catch (error) { - console.error(error) - return error - } -} - -const removeSinglePoint = async ( - req: CreateSinglePointRequest, - _res: Response, - next: NextFunction, -) => { - try { - const { ceramic } = await getContext() - const reader = new SinglePointReader({ - ceramic, - issuer: ceramic.did!.id, - }) - const documents = await reader.queryPointDocumentsFor(req.body.recipient) - const id = documents.documents[documents.documents.length - 1].id - const writer = new SinglePointWriter({ ceramic }) - await writer.removePoint(id.toString()) - return next() - } catch (error) { - console.error(error) - return error - } -} - -const getSinglePoints = async ( - req: CreateSinglePointRequest, - res: Response, - next: NextFunction, -) => { - try { - const { ceramic } = await getContext() - const reader = new SinglePointReader({ - ceramic, - issuer: ceramic.did!.id, - }) - const totalPoints = await reader.countPointsFor(req.body.recipient) - res.locals.totalPoints = totalPoints - return next() - } catch (error) { - console.error(error) - return error - } -} - -export const singlePointController = { createSinglePoint, getSinglePoints, removeSinglePoint } diff --git a/demo/server/src/index.ts b/demo/server/src/index.ts index 6b88baa..0a15ea5 100644 --- a/demo/server/src/index.ts +++ b/demo/server/src/index.ts @@ -1,6 +1,5 @@ import express, { json, Request, Response, NextFunction } from 'express' import cors from 'cors' -import singleRouter from './routes/single.js' import multiRouter from './routes/multi.js' const app = express() @@ -24,7 +23,6 @@ const allowCrossDomain = (_req: Request, res: Response, next: NextFunction) => { app.use(allowCrossDomain) -app.use('/single', singleRouter) app.use('/multi', multiRouter) app.listen(port, () => { diff --git a/demo/server/src/routes/single.ts b/demo/server/src/routes/single.ts deleted file mode 100644 index 040d039..0000000 --- a/demo/server/src/routes/single.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { RequestHandler, Response, Router, Request } from 'express' -import { singlePointController } from '../controllers/singleController.js' - -const router: Router = Router() - -type R = Response & { - locals: { - totalPoints: number - } -} - -router.get( - '/', - singlePointController.getSinglePoints as RequestHandler, - (_req: Request, res: R): Response => { - return res.json({ totalPoints: res.locals.totalPoints }) - }, -) - -router.post( - '/create', - singlePointController.createSinglePoint as RequestHandler, - singlePointController.getSinglePoints as RequestHandler, - (_req: Request, res: R): Response => { - return res.json({ totalPoints: res.locals.totalPoints }) - }, -) - -router.delete( - '/remove', - singlePointController.removeSinglePoint as RequestHandler, - singlePointController.getSinglePoints as RequestHandler, - (_req: Request, res: R): Response => { - return res.json({ totalPoints: res.locals.totalPoints }) - }, -) - -export default router diff --git a/demo/simple/README.md b/demo/simple/README.md deleted file mode 100644 index 9a6ead3..0000000 --- a/demo/simple/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Demonstration of publishing points from command line - -See `index.mjs` for the minimum required to publish points - -## Install prerequisites -`pnpm install` - -## Publish points - -1) configure your environment for your preferred ceramic node - -(we may in the future have a ephemeral node available) -``` -export CERAMIC_URL= -export CERAMIC_PRIVATE_KEY= -``` - -1.1) If you have not done so already, ensure the points composite is deployed to your node - -`composedb composite:deploy ../../composites/points/composite.json --ceramic-url=$CERAMIC_URL --did-private-key=$CERAMIC_PRIVATE_KEY` - - -2) run the demo - -`node index.mjs [SOME_DID]` - -Note the did receiving points does not have to exist anywhere, only be a valid did string, such as `did:key:123` - -The output on the console should be similar to - -image - -Note that totals will reflect points assigned by you and anyone else to that did. To extend this demo for your own application, you will want to create your own points composite with custom fields. - -3) to examine the streams created - -`http://localhost:7007/api/v0/streams/[streamid from console]` diff --git a/demo/simple/index.mjs b/demo/simple/index.mjs deleted file mode 100644 index eece1bc..0000000 --- a/demo/simple/index.mjs +++ /dev/null @@ -1,38 +0,0 @@ -// Import statements using ES module syntax -import { fromString } from 'uint8arrays'; -import { CeramicClient } from "@ceramicnetwork/http-client"; -import { getAuthenticatedDID } from '@composexp/did-utils' -import { SinglePointReader, SinglePointWriter } from '@composexp/points'; - -// Environment variable for Ceramic URL (Ensure it's set in your environment) -const CERAMIC_URL = process.env.CERAMIC_URL; -const CERAMIC_PRIVATE_KEY = process.env.CERAMIC_PRIVATE_KEY; - -const point_subject = process.argv[2]; - -// Main function wrapped in an immediately invoked function expression (IIFE) to handle async/await -(async () => { - - if (!point_subject) { - console.error("Usage: node assign_point.mjs [subject_did]"); - process.exit(1); - } - - if (! CERAMIC_PRIVATE_KEY || ! CERAMIC_URL) { - console.error("You must set CERAMIC_URL and CERAMIC_PRIVATE_KEY in your environment"); - process.exit(1); - } - const key = fromString(CERAMIC_PRIVATE_KEY, "base16"); - - const ceramic = new CeramicClient(CERAMIC_URL); - ceramic.did = await getAuthenticatedDID(key); - const writer = new SinglePointWriter({ ceramic }) - - const pointInstance = await writer.addPointTo(point_subject) - console.log(`Wrote point: ${pointInstance.id.toString()}`); - - const reader = new SinglePointReader({ceramic: ceramic, issuer: ceramic.did.id}) - const total_points = await reader.countPointsFor(point_subject) - console.log(`Added a point for ${point_subject} now they have ${total_points}`) -})(); - diff --git a/demo/simple/package.json b/demo/simple/package.json deleted file mode 100644 index ea93036..0000000 --- a/demo/simple/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "demo", - "version": "1.0.0", - "dependencies": { - "@ceramicnetwork/http-client": "^5.6.0", - "@ceramic-solutions/did-utils": "workspace:^", - "@ceramic-solutions/points": "workspace:^", - "uint8arrays": "^5.0.3" - } -} diff --git a/docs/api/classes/points.GenericReader.md b/docs/api/classes/points.GenericReader.md new file mode 100644 index 0000000..523a9bf --- /dev/null +++ b/docs/api/classes/points.GenericReader.md @@ -0,0 +1,158 @@ +# Class: GenericReader\ + +[points](../modules/points.md).GenericReader + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +## Hierarchy + +- **`GenericReader`** + + ↳ [`ListWriter`](points.ListWriter.md) + + ↳ [`SetReader`](points.SetReader.md) + +## Table of contents + +### Constructors + +- [constructor](points.GenericReader.md#constructor) + +### Accessors + +- [ceramic](points.GenericReader.md#ceramic) +- [issuer](points.GenericReader.md#issuer) +- [loader](points.GenericReader.md#loader) +- [modelID](points.GenericReader.md#modelid) + +### Methods + +- [queryDocuments](points.GenericReader.md#querydocuments) +- [queryDocumentsFor](points.GenericReader.md#querydocumentsfor) + +## Constructors + +### constructor + +• **new GenericReader**\<`Content`\>(`params`): [`GenericReader`](points.GenericReader.md)\<`Content`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | [`GenericReaderParams`](../modules/points.md#genericreaderparams) | + +#### Returns + +[`GenericReader`](points.GenericReader.md)\<`Content`\> + +#### Defined in + +[libraries/points/src/generic-reader.ts:24](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L24) + +## Accessors + +### ceramic + +• `get` **ceramic**(): `CeramicAPI` + +#### Returns + +`CeramicAPI` + +#### Defined in + +[libraries/points/src/generic-reader.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L41) + +___ + +### issuer + +• `get` **issuer**(): `string` + +#### Returns + +`string` + +#### Defined in + +[libraries/points/src/generic-reader.ts:33](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L33) + +___ + +### loader + +• `get` **loader**(): `DocumentLoader` + +#### Returns + +`DocumentLoader` + +#### Defined in + +[libraries/points/src/generic-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L45) + +___ + +### modelID + +• `get` **modelID**(): `string` + +#### Returns + +`string` + +#### Defined in + +[libraries/points/src/generic-reader.ts:37](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L37) + +## Methods + +### queryDocuments + +▸ **queryDocuments**(`options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Defined in + +[libraries/points/src/generic-reader.ts:49](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L49) + +___ + +### queryDocumentsFor + +▸ **queryDocumentsFor**(`did`, `options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `did` | `string` | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Defined in + +[libraries/points/src/generic-reader.ts:53](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L53) diff --git a/docs/api/classes/points.ListWriter.md b/docs/api/classes/points.ListWriter.md new file mode 100644 index 0000000..f13bc22 --- /dev/null +++ b/docs/api/classes/points.ListWriter.md @@ -0,0 +1,253 @@ +# Class: ListWriter\ + +[points](../modules/points.md).ListWriter + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +## Hierarchy + +- [`GenericReader`](points.GenericReader.md)\<`Content`\> + + ↳ **`ListWriter`** + +## Table of contents + +### Constructors + +- [constructor](points.ListWriter.md#constructor) + +### Accessors + +- [ceramic](points.ListWriter.md#ceramic) +- [issuer](points.ListWriter.md#issuer) +- [loader](points.ListWriter.md#loader) +- [modelID](points.ListWriter.md#modelid) + +### Methods + +- [createDocument](points.ListWriter.md#createdocument) +- [queryDocuments](points.ListWriter.md#querydocuments) +- [queryDocumentsFor](points.ListWriter.md#querydocumentsfor) +- [removeDocument](points.ListWriter.md#removedocument) +- [fromSeed](points.ListWriter.md#fromseed) + +## Constructors + +### constructor + +• **new ListWriter**\<`Content`\>(`params`): [`ListWriter`](points.ListWriter.md)\<`Content`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | [`ListWriterParams`](../modules/points.md#listwriterparams) | + +#### Returns + +[`ListWriter`](points.ListWriter.md)\<`Content`\> + +#### Overrides + +[GenericReader](points.GenericReader.md).[constructor](points.GenericReader.md#constructor) + +#### Defined in + +[libraries/points/src/list-writer.ts:31](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/list-writer.ts#L31) + +## Accessors + +### ceramic + +• `get` **ceramic**(): `CeramicAPI` + +#### Returns + +`CeramicAPI` + +#### Inherited from + +GenericReader.ceramic + +#### Defined in + +[libraries/points/src/generic-reader.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L41) + +___ + +### issuer + +• `get` **issuer**(): `string` + +#### Returns + +`string` + +#### Inherited from + +GenericReader.issuer + +#### Defined in + +[libraries/points/src/generic-reader.ts:33](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L33) + +___ + +### loader + +• `get` **loader**(): `DocumentLoader` + +#### Returns + +`DocumentLoader` + +#### Inherited from + +GenericReader.loader + +#### Defined in + +[libraries/points/src/generic-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L45) + +___ + +### modelID + +• `get` **modelID**(): `string` + +#### Returns + +`string` + +#### Inherited from + +GenericReader.modelID + +#### Defined in + +[libraries/points/src/generic-reader.ts:37](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L37) + +## Methods + +### createDocument + +▸ **createDocument**(`content`): `Promise`\<`ModelInstanceDocument`\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `content` | `Content` | + +#### Returns + +`Promise`\<`ModelInstanceDocument`\<`Content`\>\> + +#### Defined in + +[libraries/points/src/list-writer.ts:36](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/list-writer.ts#L36) + +___ + +### queryDocuments + +▸ **queryDocuments**(`options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Inherited from + +[GenericReader](points.GenericReader.md).[queryDocuments](points.GenericReader.md#querydocuments) + +#### Defined in + +[libraries/points/src/generic-reader.ts:49](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L49) + +___ + +### queryDocumentsFor + +▸ **queryDocumentsFor**(`did`, `options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `did` | `string` | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Inherited from + +[GenericReader](points.GenericReader.md).[queryDocumentsFor](points.GenericReader.md#querydocumentsfor) + +#### Defined in + +[libraries/points/src/generic-reader.ts:53](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L53) + +___ + +### removeDocument + +▸ **removeDocument**(`id`): `Promise`\<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `id` | `string` | + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[libraries/points/src/list-writer.ts:40](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/list-writer.ts#L40) + +___ + +### fromSeed + +▸ **fromSeed**\<`Content`\>(`params`): `Promise`\<[`ListWriter`](points.ListWriter.md)\<`Content`\>\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | [`ListWriterFromSeedParams`](../modules/points.md#listwriterfromseedparams) | + +#### Returns + +`Promise`\<[`ListWriter`](points.ListWriter.md)\<`Content`\>\> + +#### Defined in + +[libraries/points/src/list-writer.ts:24](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/list-writer.ts#L24) diff --git a/docs/api/classes/points.PointsReader.md b/docs/api/classes/points.PointsReader.md index 9c6ee4b..4157dac 100644 --- a/docs/api/classes/points.PointsReader.md +++ b/docs/api/classes/points.PointsReader.md @@ -7,7 +7,7 @@ | Name | Type | | :------ | :------ | | `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | -| `AllocationContent` | extends `MultiplePointsContent` = `MultiplePointsContent` | +| `AllocationContent` | extends `AllocatePointsContent` = `AllocatePointsContent` | ## Hierarchy @@ -21,13 +21,6 @@ - [constructor](points.PointsReader.md#constructor) -### Accessors - -- [aggregationModelID](points.PointsReader.md#aggregationmodelid) -- [allocationModelID](points.PointsReader.md#allocationmodelid) -- [ceramic](points.PointsReader.md#ceramic) -- [loader](points.PointsReader.md#loader) - ### Methods - [getAggregationPointsFor](points.PointsReader.md#getaggregationpointsfor) @@ -35,6 +28,7 @@ - [loadAggregationDocumentsFor](points.PointsReader.md#loadaggregationdocumentsfor) - [queryAggregationDocuments](points.PointsReader.md#queryaggregationdocuments) - [queryAllocationDocumentsFor](points.PointsReader.md#queryallocationdocumentsfor) +- [create](points.PointsReader.md#create) ## Constructors @@ -47,13 +41,13 @@ | Name | Type | | :------ | :------ | | `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | -| `AllocationContent` | extends `MultiplePointsContent` = `MultiplePointsContent` | +| `AllocationContent` | extends `PointsContent` = `PointsContent` | #### Parameters | Name | Type | | :------ | :------ | -| `params` | [`PointsReaderParams`](../modules/points.md#pointsreaderparams) | +| `params` | [`PointsReaderParams`](../modules/points.md#pointsreaderparams)\<`AggregationContent`, `AllocationContent`\> | #### Returns @@ -61,63 +55,7 @@ #### Defined in -[libraries/points/src/points-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L45) - -## Accessors - -### aggregationModelID - -• `get` **aggregationModelID**(): `string` - -#### Returns - -`string` - -#### Defined in - -[libraries/points/src/points-reader.ts:59](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L59) - -___ - -### allocationModelID - -• `get` **allocationModelID**(): `string` - -#### Returns - -`string` - -#### Defined in - -[libraries/points/src/points-reader.ts:63](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L63) - -___ - -### ceramic - -• `get` **ceramic**(): `CeramicAPI` - -#### Returns - -`CeramicAPI` - -#### Defined in - -[libraries/points/src/points-reader.ts:67](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L67) - -___ - -### loader - -• `get` **loader**(): `DocumentLoader` - -#### Returns - -`DocumentLoader` - -#### Defined in - -[libraries/points/src/points-reader.ts:71](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L71) +[libraries/points/src/points-reader.ts:63](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L63) ## Methods @@ -137,7 +75,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:95](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L95) +[libraries/points/src/points-reader.ts:82](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L82) ___ @@ -150,7 +88,7 @@ ___ | Name | Type | | :------ | :------ | | `didOrValues` | `string` \| `string`[] | -| `options` | `DeterministicLoadOptions` | +| `options?` | `DeterministicLoadOptions` | #### Returns @@ -158,7 +96,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:75](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L75) +[libraries/points/src/points-reader.ts:68](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L68) ___ @@ -179,7 +117,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:87](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L87) +[libraries/points/src/points-reader.ts:75](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L75) ___ @@ -199,7 +137,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:100](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L100) +[libraries/points/src/points-reader.ts:86](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L86) ___ @@ -220,4 +158,31 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:106](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L106) +[libraries/points/src/points-reader.ts:92](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L92) + +___ + +### create + +▸ **create**\<`AggregationContent`, `AllocationContent`\>(`params`): [`PointsReader`](points.PointsReader.md)\<`AggregationContent`, `AllocationContent`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | +| `AllocationContent` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | `CreatePointsReaderParams` | + +#### Returns + +[`PointsReader`](points.PointsReader.md)\<`AggregationContent`, `AllocationContent`\> + +#### Defined in + +[libraries/points/src/points-reader.ts:40](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L40) diff --git a/docs/api/classes/points.PointsWriter.md b/docs/api/classes/points.PointsWriter.md index f9cba05..6bdd367 100644 --- a/docs/api/classes/points.PointsWriter.md +++ b/docs/api/classes/points.PointsWriter.md @@ -7,7 +7,7 @@ | Name | Type | | :------ | :------ | | `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | -| `AllocationContent` | extends `MultiplePointsContent` = `MultiplePointsContent` | +| `AllocationContent` | extends `AllocatePointsContent` = `AllocatePointsContent` | ## Hierarchy @@ -21,13 +21,6 @@ - [constructor](points.PointsWriter.md#constructor) -### Accessors - -- [aggregationModelID](points.PointsWriter.md#aggregationmodelid) -- [allocationModelID](points.PointsWriter.md#allocationmodelid) -- [ceramic](points.PointsWriter.md#ceramic) -- [loader](points.PointsWriter.md#loader) - ### Methods - [allocatePointsTo](points.PointsWriter.md#allocatepointsto) @@ -39,6 +32,8 @@ - [removePointsAllocation](points.PointsWriter.md#removepointsallocation) - [setPointsAggregationFor](points.PointsWriter.md#setpointsaggregationfor) - [updatePointsAggregationFor](points.PointsWriter.md#updatepointsaggregationfor) +- [create](points.PointsWriter.md#create) +- [fromAuthenticated](points.PointsWriter.md#fromauthenticated) - [fromSeed](points.PointsWriter.md#fromseed) ## Constructors @@ -52,13 +47,13 @@ | Name | Type | | :------ | :------ | | `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | -| `AllocationContent` | extends `MultiplePointsContent` = `MultiplePointsContent` | +| `AllocationContent` | extends `PointsContent` = `PointsContent` | #### Parameters | Name | Type | | :------ | :------ | -| `params` | [`PointsWriterParams`](../modules/points.md#pointswriterparams) | +| `params` | [`PointsWriterParams`](../modules/points.md#pointswriterparams)\<`AggregationContent`, `AllocationContent`\> | #### Returns @@ -70,79 +65,7 @@ #### Defined in -[libraries/points/src/points-writer.ts:43](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L43) - -## Accessors - -### aggregationModelID - -• `get` **aggregationModelID**(): `string` - -#### Returns - -`string` - -#### Inherited from - -PointsReader.aggregationModelID - -#### Defined in - -[libraries/points/src/points-reader.ts:59](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L59) - -___ - -### allocationModelID - -• `get` **allocationModelID**(): `string` - -#### Returns - -`string` - -#### Inherited from - -PointsReader.allocationModelID - -#### Defined in - -[libraries/points/src/points-reader.ts:63](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L63) - -___ - -### ceramic - -• `get` **ceramic**(): `CeramicAPI` - -#### Returns - -`CeramicAPI` - -#### Inherited from - -PointsReader.ceramic - -#### Defined in - -[libraries/points/src/points-reader.ts:67](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L67) - -___ - -### loader - -• `get` **loader**(): `DocumentLoader` - -#### Returns - -`DocumentLoader` - -#### Inherited from - -PointsReader.loader - -#### Defined in - -[libraries/points/src/points-reader.ts:71](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L71) +[libraries/points/src/points-writer.ts:78](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L78) ## Methods @@ -164,7 +87,7 @@ PointsReader.loader #### Defined in -[libraries/points/src/points-writer.ts:50](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L50) +[libraries/points/src/points-writer.ts:87](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L87) ___ @@ -188,7 +111,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:95](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L95) +[libraries/points/src/points-reader.ts:82](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L82) ___ @@ -201,7 +124,7 @@ ___ | Name | Type | | :------ | :------ | | `didOrValues` | `string` \| `string`[] | -| `options` | `DeterministicLoadOptions` | +| `options?` | `DeterministicLoadOptions` | #### Returns @@ -213,7 +136,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:75](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L75) +[libraries/points/src/points-reader.ts:68](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L68) ___ @@ -238,7 +161,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:87](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L87) +[libraries/points/src/points-reader.ts:75](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L75) ___ @@ -262,7 +185,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:100](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L100) +[libraries/points/src/points-reader.ts:86](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L86) ___ @@ -287,7 +210,7 @@ ___ #### Defined in -[libraries/points/src/points-reader.ts:106](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L106) +[libraries/points/src/points-reader.ts:92](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L92) ___ @@ -307,7 +230,7 @@ ___ #### Defined in -[libraries/points/src/points-writer.ts:62](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L62) +[libraries/points/src/points-writer.ts:99](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L99) ___ @@ -329,20 +252,20 @@ ___ #### Defined in -[libraries/points/src/points-writer.ts:89](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L89) +[libraries/points/src/points-writer.ts:110](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L110) ___ ### updatePointsAggregationFor -▸ **updatePointsAggregationFor**(`didOrValues`, `update`): `Promise`\<`ModelInstanceDocument`\<`AggregationContent`\>\> +▸ **updatePointsAggregationFor**(`didOrValues`, `updateContent`): `Promise`\<`ModelInstanceDocument`\<`AggregationContent`\>\> #### Parameters | Name | Type | | :------ | :------ | | `didOrValues` | `string` \| `string`[] | -| `update` | (`content`: ``null`` \| `AggregationContent`) => `Partial`\<`AggregationContent`\> | +| `updateContent` | (`content`: ``null`` \| `AggregationContent`) => `Partial`\<`AggregationContent`\> | #### Returns @@ -350,7 +273,65 @@ ___ #### Defined in -[libraries/points/src/points-writer.ts:70](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L70) +[libraries/points/src/points-writer.ts:103](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L103) + +___ + +### create + +▸ **create**\<`AggregationContent`, `AllocationContent`\>(`params`): [`PointsReader`](points.PointsReader.md)\<`AggregationContent`, `AllocationContent`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | +| `AllocationContent` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | `CreatePointsReaderParams` | + +#### Returns + +[`PointsReader`](points.PointsReader.md)\<`AggregationContent`, `AllocationContent`\> + +#### Inherited from + +[PointsReader](points.PointsReader.md).[create](points.PointsReader.md#create) + +#### Defined in + +[libraries/points/src/points-reader.ts:40](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L40) + +___ + +### fromAuthenticated + +▸ **fromAuthenticated**\<`AggregationContent`, `AllocationContent`\>(`params`): [`PointsWriter`](points.PointsWriter.md)\<`AggregationContent`, `AllocationContent`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | +| `AllocationContent` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | `PointsWriterFromAuthenticatedParams` | + +#### Returns + +[`PointsWriter`](points.PointsWriter.md)\<`AggregationContent`, `AllocationContent`\> + +#### Defined in + +[libraries/points/src/points-writer.ts:44](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L44) ___ @@ -363,7 +344,7 @@ ___ | Name | Type | | :------ | :------ | | `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | -| `AllocationContent` | extends `MultiplePointsContent` = `MultiplePointsContent` | +| `AllocationContent` | extends `PointsContent` = `PointsContent` | #### Parameters @@ -377,4 +358,4 @@ ___ #### Defined in -[libraries/points/src/points-writer.ts:31](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L31) +[libraries/points/src/points-writer.ts:64](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L64) diff --git a/docs/api/classes/points.SetReader.md b/docs/api/classes/points.SetReader.md new file mode 100644 index 0000000..47b2cd1 --- /dev/null +++ b/docs/api/classes/points.SetReader.md @@ -0,0 +1,230 @@ +# Class: SetReader\ + +[points](../modules/points.md).SetReader + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +## Hierarchy + +- [`GenericReader`](points.GenericReader.md)\<`Content`\> + + ↳ **`SetReader`** + + ↳↳ [`SetWriter`](points.SetWriter.md) + +## Table of contents + +### Constructors + +- [constructor](points.SetReader.md#constructor) + +### Accessors + +- [ceramic](points.SetReader.md#ceramic) +- [issuer](points.SetReader.md#issuer) +- [loader](points.SetReader.md#loader) +- [modelID](points.SetReader.md#modelid) + +### Methods + +- [getPointsFor](points.SetReader.md#getpointsfor) +- [loadDocumentFor](points.SetReader.md#loaddocumentfor) +- [queryDocuments](points.SetReader.md#querydocuments) +- [queryDocumentsFor](points.SetReader.md#querydocumentsfor) + +## Constructors + +### constructor + +• **new SetReader**\<`Content`\>(`params`): [`SetReader`](points.SetReader.md)\<`Content`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | [`GenericReaderParams`](../modules/points.md#genericreaderparams) | + +#### Returns + +[`SetReader`](points.SetReader.md)\<`Content`\> + +#### Inherited from + +[GenericReader](points.GenericReader.md).[constructor](points.GenericReader.md#constructor) + +#### Defined in + +[libraries/points/src/generic-reader.ts:24](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L24) + +## Accessors + +### ceramic + +• `get` **ceramic**(): `CeramicAPI` + +#### Returns + +`CeramicAPI` + +#### Inherited from + +GenericReader.ceramic + +#### Defined in + +[libraries/points/src/generic-reader.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L41) + +___ + +### issuer + +• `get` **issuer**(): `string` + +#### Returns + +`string` + +#### Inherited from + +GenericReader.issuer + +#### Defined in + +[libraries/points/src/generic-reader.ts:33](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L33) + +___ + +### loader + +• `get` **loader**(): `DocumentLoader` + +#### Returns + +`DocumentLoader` + +#### Inherited from + +GenericReader.loader + +#### Defined in + +[libraries/points/src/generic-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L45) + +___ + +### modelID + +• `get` **modelID**(): `string` + +#### Returns + +`string` + +#### Inherited from + +GenericReader.modelID + +#### Defined in + +[libraries/points/src/generic-reader.ts:37](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L37) + +## Methods + +### getPointsFor + +▸ **getPointsFor**(`didOrValues`, `options?`): `Promise`\<`number`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `didOrValues` | `string` \| `string`[] | +| `options?` | `DeterministicLoadOptions` | + +#### Returns + +`Promise`\<`number`\> + +#### Defined in + +[libraries/points/src/set-reader.ts:26](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-reader.ts#L26) + +___ + +### loadDocumentFor + +▸ **loadDocumentFor**(`didOrValues`, `options?`): `Promise`\<``null`` \| `ModelInstanceDocument`\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `didOrValues` | `string` \| `string`[] | +| `options` | `DeterministicLoadOptions` | + +#### Returns + +`Promise`\<``null`` \| `ModelInstanceDocument`\<`Content`\>\> + +#### Defined in + +[libraries/points/src/set-reader.ts:16](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-reader.ts#L16) + +___ + +### queryDocuments + +▸ **queryDocuments**(`options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Inherited from + +[GenericReader](points.GenericReader.md).[queryDocuments](points.GenericReader.md#querydocuments) + +#### Defined in + +[libraries/points/src/generic-reader.ts:49](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L49) + +___ + +### queryDocumentsFor + +▸ **queryDocumentsFor**(`did`, `options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `did` | `string` | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Inherited from + +[GenericReader](points.GenericReader.md).[queryDocumentsFor](points.GenericReader.md#querydocumentsfor) + +#### Defined in + +[libraries/points/src/generic-reader.ts:53](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L53) diff --git a/docs/api/classes/points.SetWriter.md b/docs/api/classes/points.SetWriter.md new file mode 100644 index 0000000..f1e0a28 --- /dev/null +++ b/docs/api/classes/points.SetWriter.md @@ -0,0 +1,327 @@ +# Class: SetWriter\ + +[points](../modules/points.md).SetWriter + +## Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +## Hierarchy + +- [`SetReader`](points.SetReader.md)\<`Content`\> + + ↳ **`SetWriter`** + +## Table of contents + +### Constructors + +- [constructor](points.SetWriter.md#constructor) + +### Accessors + +- [ceramic](points.SetWriter.md#ceramic) +- [issuer](points.SetWriter.md#issuer) +- [loader](points.SetWriter.md#loader) +- [modelID](points.SetWriter.md#modelid) + +### Methods + +- [getPointsFor](points.SetWriter.md#getpointsfor) +- [loadDocumentFor](points.SetWriter.md#loaddocumentfor) +- [queryDocuments](points.SetWriter.md#querydocuments) +- [queryDocumentsFor](points.SetWriter.md#querydocumentsfor) +- [removeDocument](points.SetWriter.md#removedocument) +- [removeDocumentFor](points.SetWriter.md#removedocumentfor) +- [setDocumentFor](points.SetWriter.md#setdocumentfor) +- [fromSeed](points.SetWriter.md#fromseed) + +## Constructors + +### constructor + +• **new SetWriter**\<`Content`\>(`params`): [`SetWriter`](points.SetWriter.md)\<`Content`\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | [`SetWriterParams`](../modules/points.md#setwriterparams) | + +#### Returns + +[`SetWriter`](points.SetWriter.md)\<`Content`\> + +#### Overrides + +[SetReader](points.SetReader.md).[constructor](points.SetReader.md#constructor) + +#### Defined in + +[libraries/points/src/set-writer.ts:29](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L29) + +## Accessors + +### ceramic + +• `get` **ceramic**(): `CeramicAPI` + +#### Returns + +`CeramicAPI` + +#### Inherited from + +SetReader.ceramic + +#### Defined in + +[libraries/points/src/generic-reader.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L41) + +___ + +### issuer + +• `get` **issuer**(): `string` + +#### Returns + +`string` + +#### Inherited from + +SetReader.issuer + +#### Defined in + +[libraries/points/src/generic-reader.ts:33](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L33) + +___ + +### loader + +• `get` **loader**(): `DocumentLoader` + +#### Returns + +`DocumentLoader` + +#### Inherited from + +SetReader.loader + +#### Defined in + +[libraries/points/src/generic-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L45) + +___ + +### modelID + +• `get` **modelID**(): `string` + +#### Returns + +`string` + +#### Inherited from + +SetReader.modelID + +#### Defined in + +[libraries/points/src/generic-reader.ts:37](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L37) + +## Methods + +### getPointsFor + +▸ **getPointsFor**(`didOrValues`, `options?`): `Promise`\<`number`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `didOrValues` | `string` \| `string`[] | +| `options?` | `DeterministicLoadOptions` | + +#### Returns + +`Promise`\<`number`\> + +#### Inherited from + +[SetReader](points.SetReader.md).[getPointsFor](points.SetReader.md#getpointsfor) + +#### Defined in + +[libraries/points/src/set-reader.ts:26](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-reader.ts#L26) + +___ + +### loadDocumentFor + +▸ **loadDocumentFor**(`didOrValues`, `options?`): `Promise`\<``null`` \| `ModelInstanceDocument`\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `didOrValues` | `string` \| `string`[] | +| `options` | `DeterministicLoadOptions` | + +#### Returns + +`Promise`\<``null`` \| `ModelInstanceDocument`\<`Content`\>\> + +#### Inherited from + +[SetReader](points.SetReader.md).[loadDocumentFor](points.SetReader.md#loaddocumentfor) + +#### Defined in + +[libraries/points/src/set-reader.ts:16](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-reader.ts#L16) + +___ + +### queryDocuments + +▸ **queryDocuments**(`options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Inherited from + +[SetReader](points.SetReader.md).[queryDocuments](points.SetReader.md#querydocuments) + +#### Defined in + +[libraries/points/src/generic-reader.ts:49](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L49) + +___ + +### queryDocumentsFor + +▸ **queryDocumentsFor**(`did`, `options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `did` | `string` | +| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | + +#### Returns + +`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> + +#### Inherited from + +[SetReader](points.SetReader.md).[queryDocumentsFor](points.SetReader.md#querydocumentsfor) + +#### Defined in + +[libraries/points/src/generic-reader.ts:53](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L53) + +___ + +### removeDocument + +▸ **removeDocument**(`id`): `Promise`\<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `id` | `string` | + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[libraries/points/src/set-writer.ts:57](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L57) + +___ + +### removeDocumentFor + +▸ **removeDocumentFor**(`didOrValues`): `Promise`\<`void`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `didOrValues` | `string` \| `string`[] | + +#### Returns + +`Promise`\<`void`\> + +#### Defined in + +[libraries/points/src/set-writer.ts:65](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L65) + +___ + +### setDocumentFor + +▸ **setDocumentFor**(`didOrValues`, `updateContent`): `Promise`\<`ModelInstanceDocument`\<`Content`\>\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `didOrValues` | `string` \| `string`[] | +| `updateContent` | (`content`: ``null`` \| `Content`) => `Partial`\<`Content`\> | + +#### Returns + +`Promise`\<`ModelInstanceDocument`\<`Content`\>\> + +#### Defined in + +[libraries/points/src/set-writer.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L41) + +___ + +### fromSeed + +▸ **fromSeed**\<`Content`\>(`params`): `Promise`\<[`SetWriter`](points.SetWriter.md)\<`Content`\>\> + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `Content` | extends `PointsContent` = `PointsContent` | + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `params` | [`SetWriterFromSeedParams`](../modules/points.md#setwriterfromseedparams) | + +#### Returns + +`Promise`\<[`SetWriter`](points.SetWriter.md)\<`Content`\>\> + +#### Defined in + +[libraries/points/src/set-writer.ts:22](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L22) diff --git a/docs/api/classes/points.SinglePointReader.md b/docs/api/classes/points.SinglePointReader.md deleted file mode 100644 index bcb7105..0000000 --- a/docs/api/classes/points.SinglePointReader.md +++ /dev/null @@ -1,156 +0,0 @@ -# Class: SinglePointReader\ - -[points](../modules/points.md).SinglePointReader - -## Type parameters - -| Name | Type | -| :------ | :------ | -| `Content` | extends `SinglePointContent` = `SinglePointContent` | - -## Hierarchy - -- **`SinglePointReader`** - - ↳ [`SinglePointWriter`](points.SinglePointWriter.md) - -## Table of contents - -### Constructors - -- [constructor](points.SinglePointReader.md#constructor) - -### Accessors - -- [ceramic](points.SinglePointReader.md#ceramic) -- [loader](points.SinglePointReader.md#loader) -- [modelID](points.SinglePointReader.md#modelid) - -### Methods - -- [countPointsFor](points.SinglePointReader.md#countpointsfor) -- [countTotalPoints](points.SinglePointReader.md#counttotalpoints) -- [queryPointDocumentsFor](points.SinglePointReader.md#querypointdocumentsfor) - -## Constructors - -### constructor - -• **new SinglePointReader**\<`Content`\>(`params`): [`SinglePointReader`](points.SinglePointReader.md)\<`Content`\> - -#### Type parameters - -| Name | Type | -| :------ | :------ | -| `Content` | extends `SinglePointContent` = `SinglePointContent` | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `params` | [`SinglePointReaderParams`](../modules/points.md#singlepointreaderparams) | - -#### Returns - -[`SinglePointReader`](points.SinglePointReader.md)\<`Content`\> - -#### Defined in - -[libraries/points/src/single-reader.ts:27](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L27) - -## Accessors - -### ceramic - -• `get` **ceramic**(): `CeramicAPI` - -#### Returns - -`CeramicAPI` - -#### Defined in - -[libraries/points/src/single-reader.ts:37](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L37) - -___ - -### loader - -• `get` **loader**(): `DocumentLoader` - -#### Returns - -`DocumentLoader` - -#### Defined in - -[libraries/points/src/single-reader.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L41) - -___ - -### modelID - -• `get` **modelID**(): `string` - -#### Returns - -`string` - -#### Defined in - -[libraries/points/src/single-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L45) - -## Methods - -### countPointsFor - -▸ **countPointsFor**(`did`): `Promise`\<`number`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | - -#### Returns - -`Promise`\<`number`\> - -#### Defined in - -[libraries/points/src/single-reader.ts:61](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L61) - -___ - -### countTotalPoints - -▸ **countTotalPoints**(): `Promise`\<`number`\> - -#### Returns - -`Promise`\<`number`\> - -#### Defined in - -[libraries/points/src/single-reader.ts:49](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L49) - -___ - -### queryPointDocumentsFor - -▸ **queryPointDocumentsFor**(`did`, `options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | - -#### Returns - -`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> - -#### Defined in - -[libraries/points/src/single-reader.ts:53](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L53) diff --git a/docs/api/classes/points.SinglePointWriter.md b/docs/api/classes/points.SinglePointWriter.md deleted file mode 100644 index 4f6492f..0000000 --- a/docs/api/classes/points.SinglePointWriter.md +++ /dev/null @@ -1,254 +0,0 @@ -# Class: SinglePointWriter\ - -[points](../modules/points.md).SinglePointWriter - -## Type parameters - -| Name | Type | -| :------ | :------ | -| `Content` | extends `SinglePointContent` = `SinglePointContent` | - -## Hierarchy - -- [`SinglePointReader`](points.SinglePointReader.md)\<`Content`\> - - ↳ **`SinglePointWriter`** - -## Table of contents - -### Constructors - -- [constructor](points.SinglePointWriter.md#constructor) - -### Accessors - -- [ceramic](points.SinglePointWriter.md#ceramic) -- [loader](points.SinglePointWriter.md#loader) -- [modelID](points.SinglePointWriter.md#modelid) - -### Methods - -- [addPointTo](points.SinglePointWriter.md#addpointto) -- [countPointsFor](points.SinglePointWriter.md#countpointsfor) -- [countTotalPoints](points.SinglePointWriter.md#counttotalpoints) -- [queryPointDocumentsFor](points.SinglePointWriter.md#querypointdocumentsfor) -- [removePoint](points.SinglePointWriter.md#removepoint) -- [fromSeed](points.SinglePointWriter.md#fromseed) - -## Constructors - -### constructor - -• **new SinglePointWriter**\<`Content`\>(`params`): [`SinglePointWriter`](points.SinglePointWriter.md)\<`Content`\> - -#### Type parameters - -| Name | Type | -| :------ | :------ | -| `Content` | extends `SinglePointContent` = `SinglePointContent` | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `params` | [`SinglePointWriterParams`](../modules/points.md#singlepointwriterparams) | - -#### Returns - -[`SinglePointWriter`](points.SinglePointWriter.md)\<`Content`\> - -#### Overrides - -[SinglePointReader](points.SinglePointReader.md).[constructor](points.SinglePointReader.md#constructor) - -#### Defined in - -[libraries/points/src/single-writer.ts:33](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-writer.ts#L33) - -## Accessors - -### ceramic - -• `get` **ceramic**(): `CeramicAPI` - -#### Returns - -`CeramicAPI` - -#### Inherited from - -SinglePointReader.ceramic - -#### Defined in - -[libraries/points/src/single-reader.ts:37](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L37) - -___ - -### loader - -• `get` **loader**(): `DocumentLoader` - -#### Returns - -`DocumentLoader` - -#### Inherited from - -SinglePointReader.loader - -#### Defined in - -[libraries/points/src/single-reader.ts:41](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L41) - -___ - -### modelID - -• `get` **modelID**(): `string` - -#### Returns - -`string` - -#### Inherited from - -SinglePointReader.modelID - -#### Defined in - -[libraries/points/src/single-reader.ts:45](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L45) - -## Methods - -### addPointTo - -▸ **addPointTo**(`did`, `content?`): `Promise`\<`ModelInstanceDocument`\<`Content`\>\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `content` | `Partial`\<`Content`\> | - -#### Returns - -`Promise`\<`ModelInstanceDocument`\<`Content`\>\> - -#### Defined in - -[libraries/points/src/single-writer.ts:40](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-writer.ts#L40) - -___ - -### countPointsFor - -▸ **countPointsFor**(`did`): `Promise`\<`number`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | - -#### Returns - -`Promise`\<`number`\> - -#### Inherited from - -[SinglePointReader](points.SinglePointReader.md).[countPointsFor](points.SinglePointReader.md#countpointsfor) - -#### Defined in - -[libraries/points/src/single-reader.ts:61](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L61) - -___ - -### countTotalPoints - -▸ **countTotalPoints**(): `Promise`\<`number`\> - -#### Returns - -`Promise`\<`number`\> - -#### Inherited from - -[SinglePointReader](points.SinglePointReader.md).[countTotalPoints](points.SinglePointReader.md#counttotalpoints) - -#### Defined in - -[libraries/points/src/single-reader.ts:49](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L49) - -___ - -### queryPointDocumentsFor - -▸ **queryPointDocumentsFor**(`did`, `options?`): `Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `options?` | [`QueryDocumentsOptions`](../modules/points.md#querydocumentsoptions) | - -#### Returns - -`Promise`\<[`QueryDocumentsResult`](../modules/points.md#querydocumentsresult)\<`Content`\>\> - -#### Inherited from - -[SinglePointReader](points.SinglePointReader.md).[queryPointDocumentsFor](points.SinglePointReader.md#querypointdocumentsfor) - -#### Defined in - -[libraries/points/src/single-reader.ts:53](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L53) - -___ - -### removePoint - -▸ **removePoint**(`id`): `Promise`\<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `id` | `string` | - -#### Returns - -`Promise`\<`void`\> - -#### Defined in - -[libraries/points/src/single-writer.ts:47](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-writer.ts#L47) - -___ - -### fromSeed - -▸ **fromSeed**\<`Content`\>(`params`): `Promise`\<[`SinglePointWriter`](points.SinglePointWriter.md)\<`Content`\>\> - -#### Type parameters - -| Name | Type | -| :------ | :------ | -| `Content` | extends `SinglePointContent` = `SinglePointContent` | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `params` | [`SinglePointWriterFromSeedParams`](../modules/points.md#singlepointwriterfromseedparams) | - -#### Returns - -`Promise`\<[`SinglePointWriter`](points.SinglePointWriter.md)\<`Content`\>\> - -#### Defined in - -[libraries/points/src/single-writer.ts:24](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-writer.ts#L24) diff --git a/docs/api/modules/points.md b/docs/api/modules/points.md index e3941f1..6b98b7f 100644 --- a/docs/api/modules/points.md +++ b/docs/api/modules/points.md @@ -4,47 +4,51 @@ ### Classes +- [GenericReader](../classes/points.GenericReader.md) +- [ListWriter](../classes/points.ListWriter.md) - [PointsReader](../classes/points.PointsReader.md) - [PointsWriter](../classes/points.PointsWriter.md) -- [SinglePointReader](../classes/points.SinglePointReader.md) -- [SinglePointWriter](../classes/points.SinglePointWriter.md) +- [SetReader](../classes/points.SetReader.md) +- [SetWriter](../classes/points.SetWriter.md) ### Type Aliases +- [GenericReaderParams](points.md#genericreaderparams) +- [ListWriterFromSeedParams](points.md#listwriterfromseedparams) +- [ListWriterParams](points.md#listwriterparams) - [PointsReaderParams](points.md#pointsreaderparams) - [PointsWriterFromSeedParams](points.md#pointswriterfromseedparams) - [PointsWriterParams](points.md#pointswriterparams) - [QueryDocumentsOptions](points.md#querydocumentsoptions) - [QueryDocumentsResult](points.md#querydocumentsresult) -- [SinglePointReaderParams](points.md#singlepointreaderparams) -- [SinglePointWriterFromSeedParams](points.md#singlepointwriterfromseedparams) -- [SinglePointWriterParams](points.md#singlepointwriterparams) +- [SetReaderParams](points.md#setreaderparams) +- [SetWriterFromSeedParams](points.md#setwriterfromseedparams) +- [SetWriterParams](points.md#setwriterparams) ## Type Aliases -### PointsReaderParams +### GenericReaderParams -Ƭ **PointsReaderParams**: `Object` +Ƭ **GenericReaderParams**: `Object` #### Type declaration | Name | Type | | :------ | :------ | -| `aggregationModelID?` | `string` | -| `allocationModelID?` | `string` | | `ceramic?` | `CeramicAPI` \| `string` | | `issuer` | `string` | | `loader?` | `DocumentLoader` | +| `modelID` | `string` | #### Defined in -[libraries/points/src/points-reader.ts:25](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-reader.ts#L25) +[libraries/points/src/generic-reader.ts:10](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/generic-reader.ts#L10) ___ -### PointsWriterFromSeedParams +### ListWriterFromSeedParams -Ƭ **PointsWriterFromSeedParams**: `Object` +Ƭ **ListWriterFromSeedParams**: `Object` #### Type declaration @@ -52,18 +56,60 @@ ___ | :------ | :------ | | `ceramic?` | `CeramicAPI` \| `string` | | `loader?` | `DocumentLoader` | -| `modelID?` | `string` | +| `modelID` | `string` | | `seed` | `Uint8Array` | #### Defined in -[libraries/points/src/points-writer.ts:13](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L13) +[libraries/points/src/list-writer.ts:8](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/list-writer.ts#L8) ___ -### PointsWriterParams +### ListWriterParams -Ƭ **PointsWriterParams**: `Object` +Ƭ **ListWriterParams**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `ceramic` | `CeramicAPI` | +| `loader?` | `DocumentLoader` | +| `modelID` | `string` | + +#### Defined in + +[libraries/points/src/list-writer.ts:15](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/list-writer.ts#L15) + +___ + +### PointsReaderParams + +Ƭ **PointsReaderParams**\<`AggregationContent`, `AllocationContent`\>: `Object` + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | +| `AllocationContent` | extends `AllocatePointsContent` = `AllocatePointsContent` | + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `aggregationReader` | [`SetReader`](../classes/points.SetReader.md)\<`AggregationContent`\> | +| `allocationReader` | [`GenericReader`](../classes/points.GenericReader.md)\<`AllocationContent`\> | + +#### Defined in + +[libraries/points/src/points-reader.ts:28](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-reader.ts#L28) + +___ + +### PointsWriterFromSeedParams + +Ƭ **PointsWriterFromSeedParams**: `Object` #### Type declaration @@ -71,12 +117,37 @@ ___ | :------ | :------ | | `aggregationModelID?` | `string` | | `allocationModelID?` | `string` | -| `ceramic` | `CeramicAPI` | +| `ceramic?` | `CeramicAPI` \| `string` | | `loader?` | `DocumentLoader` | +| `seed` | `Uint8Array` | + +#### Defined in + +[libraries/points/src/points-writer.ts:24](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L24) + +___ + +### PointsWriterParams + +Ƭ **PointsWriterParams**\<`AggregationContent`, `AllocationContent`\>: `Object` + +#### Type parameters + +| Name | Type | +| :------ | :------ | +| `AggregationContent` | extends `TotalPointsContent` = `TotalPointsContent` | +| `AllocationContent` | extends `AllocatePointsContent` = `AllocatePointsContent` | + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `aggregationWriter` | [`SetWriter`](../classes/points.SetWriter.md)\<`AggregationContent`\> | +| `allocationWriter` | [`ListWriter`](../classes/points.ListWriter.md)\<`AllocationContent`\> | #### Defined in -[libraries/points/src/points-writer.ts:20](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/points-writer.ts#L20) +[libraries/points/src/points-writer.ts:32](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/points-writer.ts#L32) ___ @@ -94,7 +165,7 @@ ___ #### Defined in -[libraries/points/src/types.ts:3](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/types.ts#L3) +[libraries/points/src/types.ts:3](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/types.ts#L3) ___ @@ -120,32 +191,23 @@ ___ #### Defined in -[libraries/points/src/types.ts:9](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/types.ts#L9) +[libraries/points/src/types.ts:9](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/types.ts#L9) ___ -### SinglePointReaderParams +### SetReaderParams -Ƭ **SinglePointReaderParams**: `Object` - -#### Type declaration - -| Name | Type | -| :------ | :------ | -| `ceramic?` | `CeramicAPI` \| `string` | -| `issuer` | `string` | -| `loader?` | `DocumentLoader` | -| `modelID?` | `string` | +Ƭ **SetReaderParams**: [`GenericReaderParams`](points.md#genericreaderparams) #### Defined in -[libraries/points/src/single-reader.ts:14](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-reader.ts#L14) +[libraries/points/src/set-reader.ts:11](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-reader.ts#L11) ___ -### SinglePointWriterFromSeedParams +### SetWriterFromSeedParams -Ƭ **SinglePointWriterFromSeedParams**: `Object` +Ƭ **SetWriterFromSeedParams**: `Object` #### Type declaration @@ -153,18 +215,18 @@ ___ | :------ | :------ | | `ceramic?` | `CeramicAPI` \| `string` | | `loader?` | `DocumentLoader` | -| `modelID?` | `string` | +| `modelID` | `string` | | `seed` | `Uint8Array` | #### Defined in -[libraries/points/src/single-writer.ts:8](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-writer.ts#L8) +[libraries/points/src/set-writer.ts:8](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L8) ___ -### SinglePointWriterParams +### SetWriterParams -Ƭ **SinglePointWriterParams**: `Object` +Ƭ **SetWriterParams**: `Object` #### Type declaration @@ -172,8 +234,8 @@ ___ | :------ | :------ | | `ceramic` | `CeramicAPI` | | `loader?` | `DocumentLoader` | -| `modelID?` | `string` | +| `modelID` | `string` | #### Defined in -[libraries/points/src/single-writer.ts:15](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/libraries/points/src/single-writer.ts#L15) +[libraries/points/src/set-writer.ts:15](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/libraries/points/src/set-writer.ts#L15) diff --git a/docs/api/modules/points_composite.md b/docs/api/modules/points_composite.md index 303a59e..e78f79a 100644 --- a/docs/api/modules/points_composite.md +++ b/docs/api/modules/points_composite.md @@ -2,16 +2,59 @@ ## Table of contents +### Type Aliases + +- [PointsContent](points_composite.md#pointscontent) + ### Variables +- [SimplePointsAggregationID](points_composite.md#simplepointsaggregationid) +- [SimplePointsAllocationID](points_composite.md#simplepointsallocationid) - [definition](points_composite.md#definition) +## Type Aliases + +### PointsContent + +Ƭ **PointsContent**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `points` | `number` | +| `recipient` | `string` | + +#### Defined in + +[composites/points/src/index.ts:11](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/composites/points/src/index.ts#L11) + ## Variables +### SimplePointsAggregationID + +• `Const` **SimplePointsAggregationID**: `string` = `definition.models.SimplePointsAggregation.id` + +#### Defined in + +[composites/points/src/index.ts:8](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/composites/points/src/index.ts#L8) + +___ + +### SimplePointsAllocationID + +• `Const` **SimplePointsAllocationID**: `string` = `definition.models.SimplePointsAllocation.id` + +#### Defined in + +[composites/points/src/index.ts:9](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/composites/points/src/index.ts#L9) + +___ + ### definition • `Const` **definition**: `RuntimeCompositeDefinition` #### Defined in -[composites/points/src/definition.ts:3](https://github.com/ceramicstudio/solutions-sdk/blob/996989c557810301e582e300ab7215628488db96/composites/points/src/definition.ts#L3) +[composites/points/src/definition.ts:3](https://github.com/ceramicstudio/solutions-sdk/blob/410a332e8e4d42d225b25ac7932f63038da217ad/composites/points/src/definition.ts#L3) diff --git a/libraries/points/package.json b/libraries/points/package.json index 590e7c5..38edfb8 100644 --- a/libraries/points/package.json +++ b/libraries/points/package.json @@ -33,19 +33,19 @@ "prepublishOnly": "package-check" }, "dependencies": { - "@ceramicnetwork/http-client": "^5.6.0", - "@composedb/loader": "^0.7.1", "@ceramic-solutions/points-composite": "workspace:^", + "@ceramicnetwork/http-client": "^5.7.0", + "@composedb/loader": "^0.7.1", "dids": "^5.0.2", "key-did-provider-ed25519": "^4.0.2", "key-did-resolver": "^4.0.0" }, "devDependencies": { - "@ceramicnetwork/common": "^5.5.0", - "@composedb/types": "^0.7.1", "@ceramic-solutions/ceramic-utils": "workspace:^", "@ceramic-solutions/composite-utils": "workspace:^", - "@ceramic-solutions/did-utils": "workspace:^" + "@ceramic-solutions/did-utils": "workspace:^", + "@ceramicnetwork/common": "^5.6.0", + "@composedb/types": "^0.7.1" }, "jest": { "extensionsToTreatAsEsm": [ diff --git a/libraries/points/src/ceramic.ts b/libraries/points/src/ceramic.ts index da50ecb..7668e4c 100644 --- a/libraries/points/src/ceramic.ts +++ b/libraries/points/src/ceramic.ts @@ -1,6 +1,25 @@ import { CeramicClient } from '@ceramicnetwork/http-client' import type { CeramicAPI } from '@composedb/types' +import type { DID } from 'dids' + +import { getAuthenticatedDID } from './did.js' export function getCeramic(ceramic?: CeramicAPI | string): CeramicAPI { return ceramic == null || typeof ceramic === 'string' ? new CeramicClient(ceramic) : ceramic } + +export async function getAuthenticatedCeramic( + seed: Uint8Array, + ceramicClientOrURL?: CeramicAPI | string, +): Promise { + const ceramic = getCeramic(ceramicClientOrURL) + const did = await getAuthenticatedDID(seed) + ceramic.did = did + return ceramic +} + +export function assertAuthenticated(did?: DID): asserts did { + if (!did?.authenticated) { + throw new Error(`An authenticated DID instance must be set on the Ceramic client`) + } +} diff --git a/libraries/points/src/single-reader.ts b/libraries/points/src/generic-reader.ts similarity index 57% rename from libraries/points/src/single-reader.ts rename to libraries/points/src/generic-reader.ts index 117c96a..d8f39a2 100644 --- a/libraries/points/src/single-reader.ts +++ b/libraries/points/src/generic-reader.ts @@ -1,37 +1,41 @@ import type { BaseQuery } from '@ceramicnetwork/common' import { DocumentLoader } from '@composedb/loader' import type { CeramicAPI } from '@composedb/types' -import { definition } from '@ceramic-solutions/points-composite' +import type { PointsContent } from '@ceramic-solutions/points-composite' import { getCeramic } from './ceramic.js' import { getQueryForRecipient, queryConnection } from './query.js' import type { QueryDocumentsOptions, QueryDocumentsResult } from './types.js' -export type SinglePointContent = { - recipient: string -} - -export type SinglePointReaderParams = { +export type GenericReaderParams = { issuer: string + modelID: string ceramic?: CeramicAPI | string loader?: DocumentLoader - modelID?: string } -export class SinglePointReader { +export class GenericReader { #baseQuery: BaseQuery + #issuer: string #ceramic: CeramicAPI #loader: DocumentLoader #modelID: string - constructor(params: SinglePointReaderParams) { + constructor(params: GenericReaderParams) { const ceramic = getCeramic(params.ceramic) - const modelID = params.modelID ?? definition.models.SinglePoint.id - - this.#baseQuery = { account: params.issuer, models: [modelID] } + this.#baseQuery = { account: params.issuer, models: [params.modelID] } + this.#modelID = params.modelID this.#ceramic = ceramic + this.#issuer = params.issuer this.#loader = params.loader ?? new DocumentLoader({ ceramic }) - this.#modelID = modelID + } + + get issuer(): string { + return this.#issuer + } + + get modelID(): string { + return this.#modelID } get ceramic(): CeramicAPI { @@ -42,24 +46,15 @@ export class SinglePointReader { - return await this.#ceramic.index.count(this.#baseQuery) + async queryDocuments(options?: QueryDocumentsOptions): Promise> { + return await queryConnection(this.#loader, this.#baseQuery, options) } - async queryPointDocumentsFor( + async queryDocumentsFor( did: string, options?: QueryDocumentsOptions, ): Promise> { const query = getQueryForRecipient(this.#baseQuery, did) return await queryConnection(this.#loader, query, options) } - - async countPointsFor(did: string): Promise { - const query = getQueryForRecipient(this.#baseQuery, did) - return await this.#ceramic.index.count(query) - } } diff --git a/libraries/points/src/index.ts b/libraries/points/src/index.ts index aa6f969..43bad4d 100644 --- a/libraries/points/src/index.ts +++ b/libraries/points/src/index.ts @@ -2,16 +2,14 @@ * @module points */ +export { GenericReader, type GenericReaderParams } from './generic-reader.js' +export { ListWriter, type ListWriterFromSeedParams, type ListWriterParams } from './list-writer.js' export { PointsReader, type PointsReaderParams } from './points-reader.js' export { - type PointsWriterFromSeedParams, PointsWriter, + type PointsWriterFromSeedParams, type PointsWriterParams, } from './points-writer.js' -export { SinglePointReader, type SinglePointReaderParams } from './single-reader.js' -export { - type SinglePointWriterFromSeedParams, - SinglePointWriter, - type SinglePointWriterParams, -} from './single-writer.js' +export { SetReader, type SetReaderParams } from './set-reader.js' +export { SetWriter, type SetWriterFromSeedParams, type SetWriterParams } from './set-writer.js' export type { QueryDocumentsOptions, QueryDocumentsResult } from './types.js' diff --git a/libraries/points/src/list-writer.ts b/libraries/points/src/list-writer.ts new file mode 100644 index 0000000..dec85a6 --- /dev/null +++ b/libraries/points/src/list-writer.ts @@ -0,0 +1,47 @@ +import type { DocumentLoader } from '@composedb/loader' +import type { CeramicAPI, ModelInstanceDocument } from '@composedb/types' +import type { PointsContent } from '@ceramic-solutions/points-composite' + +import { assertAuthenticated, getAuthenticatedCeramic } from './ceramic.js' +import { GenericReader } from './generic-reader.js' + +export type ListWriterFromSeedParams = { + ceramic?: CeramicAPI | string + loader?: DocumentLoader + modelID: string + seed: Uint8Array +} + +export type ListWriterParams = { + ceramic: CeramicAPI + loader?: DocumentLoader + modelID: string +} + +export class ListWriter< + Content extends PointsContent = PointsContent, +> extends GenericReader { + static async fromSeed( + params: ListWriterFromSeedParams, + ): Promise> { + const ceramic = await getAuthenticatedCeramic(params.seed, params.ceramic) + return new ListWriter({ ...params, ceramic }) + } + + constructor(params: ListWriterParams) { + assertAuthenticated(params.ceramic.did) + super({ ...params, issuer: params.ceramic.did.id }) + } + + async createDocument(content: Content): Promise> { + return await this.loader.create(this.modelID, content) + } + + async removeDocument(id: string): Promise { + const doc = await this.loader.load({ id }) + if (doc.metadata.model.toString() !== this.modelID) { + throw new Error(`Document ${id} is not using the expected model ${this.modelID}`) + } + await doc.shouldIndex(false) + } +} diff --git a/libraries/points/src/points-reader.ts b/libraries/points/src/points-reader.ts index a9da022..98deae5 100644 --- a/libraries/points/src/points-reader.ts +++ b/libraries/points/src/points-reader.ts @@ -1,28 +1,23 @@ -import type { BaseQuery } from '@ceramicnetwork/common' import { type DeterministicLoadOptions, DocumentLoader } from '@composedb/loader' import type { CeramicAPI, ModelInstanceDocument } from '@composedb/types' -import { definition } from '@ceramic-solutions/points-composite' +import { + type PointsContent, + SimplePointsAggregationID, + SimplePointsAllocationID, +} from '@ceramic-solutions/points-composite' import { getCeramic } from './ceramic.js' -import { getQueryForRecipient, queryConnection } from './query.js' +import { GenericReader } from './generic-reader.js' +import { SetReader } from './set-reader.js' import type { QueryDocumentsOptions, QueryDocumentsResult } from './types.js' -export function toUniqueArg(value: string | Array): Array { - return Array.isArray(value) ? value : [value] -} - -export type MultiplePointsContent = { - recipient: string - points: number -} +export type AllocatePointsContent = PointsContent -export type TotalPointsContent = { - recipient: string - points: number +export type TotalPointsContent = PointsContent & { date: string } -export type PointsReaderParams = { +export type CreatePointsReaderParams = { issuer: string aggregationModelID?: string allocationModelID?: string @@ -30,84 +25,74 @@ export type PointsReaderParams = { loader?: DocumentLoader } +export type PointsReaderParams< + AggregationContent extends TotalPointsContent = TotalPointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, +> = { + aggregationReader: SetReader + allocationReader: GenericReader +} + export class PointsReader< AggregationContent extends TotalPointsContent = TotalPointsContent, - AllocationContent extends MultiplePointsContent = MultiplePointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, > { - #aggregationBaseQuery: BaseQuery - #aggregationModelID: string - #allocationBaseQuery: BaseQuery - #allocationModelID: string - #issuer: string - #ceramic: CeramicAPI - #loader: DocumentLoader - - constructor(params: PointsReaderParams) { + static create< + AggregationContent extends TotalPointsContent = TotalPointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, + >(params: CreatePointsReaderParams): PointsReader { const ceramic = getCeramic(params.ceramic) - const aggregationModelID = params.aggregationModelID ?? definition.models.TotalPoints.id - const allocationModelID = params.allocationModelID ?? definition.models.MultiplePoints.id - - this.#aggregationBaseQuery = { account: params.issuer, models: [aggregationModelID] } - this.#aggregationModelID = aggregationModelID - this.#allocationBaseQuery = { account: params.issuer, models: [allocationModelID] } - this.#allocationModelID = allocationModelID - this.#ceramic = ceramic - this.#issuer = params.issuer - this.#loader = params.loader ?? new DocumentLoader({ ceramic }) - } - - get aggregationModelID(): string { - return this.#aggregationModelID + const aggregationReader = new SetReader({ + ceramic, + issuer: params.issuer, + loader: params.loader, + modelID: params.aggregationModelID ?? SimplePointsAggregationID, + }) + const allocationReader = new GenericReader({ + ceramic, + issuer: params.issuer, + loader: params.loader, + modelID: params.allocationModelID ?? SimplePointsAllocationID, + }) + return new PointsReader({ aggregationReader, allocationReader }) } - get allocationModelID(): string { - return this.#allocationModelID - } - - get ceramic(): CeramicAPI { - return this.#ceramic - } + #aggregation: SetReader + #allocation: GenericReader - get loader(): DocumentLoader { - return this.#loader + constructor(params: PointsReaderParams) { + this.#aggregation = params.aggregationReader + this.#allocation = params.allocationReader } async loadAggregationDocumentFor( didOrValues: string | Array, - options: DeterministicLoadOptions = {}, + options?: DeterministicLoadOptions, ): Promise | null> { - return await this.#loader.loadSet( - this.#issuer, - this.#aggregationModelID, - toUniqueArg(didOrValues), - { ignoreEmpty: true, ...options }, - ) + return await this.#aggregation.loadDocumentFor(didOrValues, options) } async loadAggregationDocumentsFor( did: string, options?: QueryDocumentsOptions, ): Promise> { - const query = getQueryForRecipient(this.#aggregationBaseQuery, did) - return await queryConnection(this.#loader, query, options) + return await this.#aggregation.queryDocumentsFor(did, options) } async getAggregationPointsFor(didOrValues: string | Array): Promise { - const doc = await this.loadAggregationDocumentFor(didOrValues) - return doc?.content?.points ?? 0 + return await this.#aggregation.getPointsFor(didOrValues) } async queryAggregationDocuments( options?: QueryDocumentsOptions, ): Promise> { - return await queryConnection(this.#loader, this.#aggregationBaseQuery, options) + return await this.#aggregation.queryDocuments(options) } async queryAllocationDocumentsFor( did: string, options?: QueryDocumentsOptions, ): Promise> { - const query = getQueryForRecipient(this.#allocationBaseQuery, did) - return await queryConnection(this.#loader, query, options) + return await this.#allocation.queryDocumentsFor(did, options) } } diff --git a/libraries/points/src/points-writer.ts b/libraries/points/src/points-writer.ts index f88a3e6..f8b1733 100644 --- a/libraries/points/src/points-writer.ts +++ b/libraries/points/src/points-writer.ts @@ -1,50 +1,87 @@ import type { DocumentLoader } from '@composedb/loader' import type { CeramicAPI, ModelInstanceDocument } from '@composedb/types' +import { + SimplePointsAggregationID, + SimplePointsAllocationID, +} from '@ceramic-solutions/points-composite' -import { getCeramic } from './ceramic.js' -import { getAuthenticatedDID } from './did.js' +import { assertAuthenticated, getAuthenticatedCeramic } from './ceramic.js' +import { ListWriter } from './list-writer.js' import { - type MultiplePointsContent, + type AllocatePointsContent, PointsReader, type TotalPointsContent, - toUniqueArg, } from './points-reader.js' +import { SetWriter } from './set-writer.js' -export type PointsWriterFromSeedParams = { - ceramic?: CeramicAPI | string +export type PointsWriterFromAuthenticatedParams = { + aggregationModelID?: string + allocationModelID?: string + ceramic: CeramicAPI loader?: DocumentLoader - modelID?: string - seed: Uint8Array } -export type PointsWriterParams = { - ceramic: CeramicAPI +export type PointsWriterFromSeedParams = { aggregationModelID?: string allocationModelID?: string + ceramic?: CeramicAPI | string loader?: DocumentLoader + seed: Uint8Array +} + +export type PointsWriterParams< + AggregationContent extends TotalPointsContent = TotalPointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, +> = { + aggregationWriter: SetWriter + allocationWriter: ListWriter } export class PointsWriter< AggregationContent extends TotalPointsContent = TotalPointsContent, - AllocationContent extends MultiplePointsContent = MultiplePointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, > extends PointsReader { + static fromAuthenticated< + AggregationContent extends TotalPointsContent = TotalPointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, + >( + params: PointsWriterFromAuthenticatedParams, + ): PointsWriter { + assertAuthenticated(params.ceramic.did) + const aggregationWriter = new SetWriter({ + ceramic: params.ceramic, + loader: params.loader, + modelID: params.aggregationModelID ?? SimplePointsAggregationID, + }) + const allocationWriter = new ListWriter({ + ceramic: params.ceramic, + loader: params.loader, + modelID: params.allocationModelID ?? SimplePointsAllocationID, + }) + return new PointsWriter({ aggregationWriter, allocationWriter }) + } + static async fromSeed< AggregationContent extends TotalPointsContent = TotalPointsContent, - AllocationContent extends MultiplePointsContent = MultiplePointsContent, + AllocationContent extends AllocatePointsContent = AllocatePointsContent, >( params: PointsWriterFromSeedParams, ): Promise> { - const ceramic = getCeramic(params.ceramic) - const did = await getAuthenticatedDID(params.seed) - ceramic.did = did - return new PointsWriter({ ...params, ceramic }) + const { seed, ...rest } = params + const ceramic = await getAuthenticatedCeramic(seed, params.ceramic) + return PointsWriter.fromAuthenticated({ ...rest, ceramic }) } - constructor(params: PointsWriterParams) { - if (!params.ceramic.did?.authenticated) { - throw new Error(`An authenticated DID instance must be set on the Ceramic client`) - } - super({ ...params, issuer: params.ceramic.did.id }) + #aggregation: SetWriter + #allocation: ListWriter + + constructor(params: PointsWriterParams) { + super({ + aggregationReader: params.aggregationWriter, + allocationReader: params.allocationWriter, + }) + this.#aggregation = params.aggregationWriter + this.#allocation = params.allocationWriter } async allocatePointsTo( @@ -52,7 +89,7 @@ export class PointsWriter< points: number, content: Partial = {}, ): Promise> { - return await this.loader.create(this.allocationModelID, { + return await this.#allocation.createDocument({ ...content, recipient: did, points, @@ -60,30 +97,14 @@ export class PointsWriter< } async removePointsAllocation(id: string): Promise { - const doc = await this.loader.load({ id }) - if (doc.metadata.model.toString() !== this.allocationModelID) { - throw new Error(`Document ${id} is not using the expected model ${this.allocationModelID}`) - } - await doc.shouldIndex(false) + await this.#allocation.removeDocument(id) } async updatePointsAggregationFor( didOrValues: string | Array, - update: (content: AggregationContent | null) => Partial, + updateContent: (content: AggregationContent | null) => Partial, ): Promise> { - const unique = toUniqueArg(didOrValues) - const doc = await this.loadAggregationDocumentFor(unique, { - ignoreEmpty: false, - onlyIndexed: false, - }) - const content = doc!.content - await doc!.replace({ - // Copy existing content or set recipient (assuming it's the first value) - ...(content ?? { recipient: unique[0] }), - // Apply content update - ...update(content), - } as AggregationContent) - return doc! + return await this.#aggregation.setDocumentFor(didOrValues, updateContent) } async setPointsAggregationFor( diff --git a/libraries/points/src/set-reader.ts b/libraries/points/src/set-reader.ts new file mode 100644 index 0000000..318f76b --- /dev/null +++ b/libraries/points/src/set-reader.ts @@ -0,0 +1,33 @@ +import type { DeterministicLoadOptions } from '@composedb/loader' +import type { ModelInstanceDocument } from '@composedb/types' +import type { PointsContent } from '@ceramic-solutions/points-composite' + +import { GenericReader, type GenericReaderParams } from './generic-reader.js' + +export function toUniqueArg(value: string | Array): Array { + return Array.isArray(value) ? value : [value] +} + +export type SetReaderParams = GenericReaderParams + +export class SetReader< + Content extends PointsContent = PointsContent, +> extends GenericReader { + async loadDocumentFor( + didOrValues: string | Array, + options: DeterministicLoadOptions = {}, + ): Promise | null> { + return await this.loader.loadSet(this.issuer, this.modelID, toUniqueArg(didOrValues), { + ignoreEmpty: true, + ...options, + }) + } + + async getPointsFor( + didOrValues: string | Array, + options?: DeterministicLoadOptions, + ): Promise { + const doc = await this.loadDocumentFor(didOrValues, options) + return doc?.content?.points ?? 0 + } +} diff --git a/libraries/points/src/set-writer.ts b/libraries/points/src/set-writer.ts new file mode 100644 index 0000000..83feb9d --- /dev/null +++ b/libraries/points/src/set-writer.ts @@ -0,0 +1,69 @@ +import type { DocumentLoader } from '@composedb/loader' +import type { CeramicAPI, ModelInstanceDocument } from '@composedb/types' +import type { PointsContent } from '@ceramic-solutions/points-composite' + +import { assertAuthenticated, getAuthenticatedCeramic } from './ceramic.js' +import { SetReader, toUniqueArg } from './set-reader.js' + +export type SetWriterFromSeedParams = { + ceramic?: CeramicAPI | string + loader?: DocumentLoader + modelID: string + seed: Uint8Array +} + +export type SetWriterParams = { + ceramic: CeramicAPI + loader?: DocumentLoader + modelID: string +} + +export class SetWriter extends SetReader { + static async fromSeed( + params: SetWriterFromSeedParams, + ): Promise> { + const ceramic = await getAuthenticatedCeramic(params.seed, params.ceramic) + return new SetWriter({ ...params, ceramic }) + } + + constructor(params: SetWriterParams) { + assertAuthenticated(params.ceramic.did) + super({ ...params, issuer: params.ceramic.did.id }) + } + + async #loadDocumentFor( + didOrValues: string | Array, + ): Promise> { + const doc = await this.loadDocumentFor(didOrValues, { ignoreEmpty: false, onlyIndexed: false }) + return doc! + } + + async setDocumentFor( + didOrValues: string | Array, + updateContent: (content: Content | null) => Partial, + ): Promise> { + const unique = toUniqueArg(didOrValues) + const doc = await this.#loadDocumentFor(didOrValues) + const content = doc.content + await doc.replace({ + // Copy existing content or set recipient (assuming it's the first value) + ...(content ?? { recipient: unique[0] }), + // Apply content update + ...updateContent(content), + } as Content) + return doc + } + + async removeDocument(id: string): Promise { + const doc = await this.loader.load({ id }) + if (doc.metadata.model.toString() !== this.modelID) { + throw new Error(`Document ${id} is not using the expected model ${this.modelID}`) + } + await doc.shouldIndex(false) + } + + async removeDocumentFor(didOrValues: string | Array): Promise { + const doc = await this.#loadDocumentFor(didOrValues) + await doc.shouldIndex(false) + } +} diff --git a/libraries/points/src/single-writer.ts b/libraries/points/src/single-writer.ts deleted file mode 100644 index 723527b..0000000 --- a/libraries/points/src/single-writer.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type { DocumentLoader } from '@composedb/loader' -import type { CeramicAPI, ModelInstanceDocument } from '@composedb/types' - -import { getCeramic } from './ceramic.js' -import { getAuthenticatedDID } from './did.js' -import { type SinglePointContent, SinglePointReader } from './single-reader.js' - -export type SinglePointWriterFromSeedParams = { - ceramic?: CeramicAPI | string - loader?: DocumentLoader - modelID?: string - seed: Uint8Array -} - -export type SinglePointWriterParams = { - ceramic: CeramicAPI - loader?: DocumentLoader - modelID?: string -} - -export class SinglePointWriter< - Content extends SinglePointContent = SinglePointContent, -> extends SinglePointReader { - static async fromSeed( - params: SinglePointWriterFromSeedParams, - ): Promise> { - const ceramic = getCeramic(params.ceramic) - const did = await getAuthenticatedDID(params.seed) - ceramic.did = did - return new SinglePointWriter({ ceramic, loader: params.loader, modelID: params.modelID }) - } - - constructor(params: SinglePointWriterParams) { - if (!params.ceramic.did?.authenticated) { - throw new Error(`An authenticated DID instance must be set on the Ceramic client`) - } - super({ ...params, issuer: params.ceramic.did.id }) - } - - async addPointTo( - did: string, - content: Partial = {}, - ): Promise> { - return await this.loader.create(this.modelID, { ...content, recipient: did } as Content) - } - - async removePoint(id: string): Promise { - const doc = await this.loader.load({ id }) - if (doc.metadata.model.toString() !== this.modelID) { - throw new Error(`Document ${id} is not using the expected model ${this.modelID}`) - } - await doc.shouldIndex(false) - } -} diff --git a/libraries/points/test/lib.test.ts b/libraries/points/test/lib.test.ts index 95bdf97..79869e8 100644 --- a/libraries/points/test/lib.test.ts +++ b/libraries/points/test/lib.test.ts @@ -4,101 +4,95 @@ import { DocumentLoader } from '@composedb/loader' import { type CeramicContext, getEphemeralCeramic } from '@ceramic-solutions/ceramic-utils' import { generatePrivateKey, getAuthenticatedDID } from '@ceramic-solutions/did-utils' import { deployComposite } from '@ceramic-solutions/composite-utils' -import { definition } from '@ceramic-solutions/points-composite' +import { + SimplePointsAggregationID, + SimplePointsAllocationID, +} from '@ceramic-solutions/points-composite' import { jest } from '@jest/globals' -import { PointsReader, PointsWriter, SinglePointReader, SinglePointWriter } from '../src' +import { GenericReader, ListWriter, PointsReader, PointsWriter, SetReader, SetWriter } from '../src' const require = createRequire(import.meta.url) const compositePath = require.resolve('@ceramic-solutions/points-composite/composite.json') describe('points', () => { - describe('SinglePointReader class', () => { + describe('GenericReader class', () => { test('getters', () => { - const reader = new SinglePointReader({ issuer: 'did:key:123' }) + const reader = new GenericReader({ issuer: 'did:key:123', modelID: 'model' }) expect(reader.ceramic).toBeInstanceOf(CeramicClient) + expect(reader.issuer).toBe('did:key:123') expect(reader.loader).toBeInstanceOf(DocumentLoader) - expect(reader.modelID).toBe(definition.models.SinglePoint!.id) + expect(reader.modelID).toBe('model') }) - test('uses provided ceramic and modelID params', () => { + test('uses provided ceramic and loader params', () => { const ceramic = new CeramicClient() - const reader = new SinglePointReader({ ceramic, issuer: 'did:key:123', modelID: 'test' }) + const loader = new DocumentLoader({ ceramic }) + const reader = new GenericReader({ + ceramic, + issuer: 'did:key:123', + loader, + modelID: 'model', + }) expect(reader.ceramic).toBe(ceramic) - expect(reader.modelID).toBe('test') + expect(reader.loader).toBe(loader) }) }) - describe('SinglePointWriter class', () => { + describe('SetReader class', () => { + test('extends GenericReader', async () => { + const reader = new SetReader({ issuer: 'did:key:123', modelID: 'model' }) + expect(reader).toBeInstanceOf(GenericReader) + }) + }) + + describe('ListWriter class', () => { test('requires an authenticated Ceramic DID', async () => { const ceramic = new CeramicClient() expect(() => { - new SinglePointWriter({ ceramic }) + new ListWriter({ ceramic, modelID: 'model' }) }).toThrow('An authenticated DID instance must be set on the Ceramic client') ceramic.did = await getAuthenticatedDID(generatePrivateKey()) expect(() => { - new SinglePointWriter({ ceramic }) + new ListWriter({ ceramic, modelID: 'model' }) }).not.toThrow() }) - test('SinglePointWriter.fromSeed() authenticates the DID from the provided seed', async () => { - expect(SinglePointWriter.fromSeed({ seed: generatePrivateKey() })).resolves.toBeInstanceOf( - SinglePointWriter, - ) - }) - - test('extends SinglePointReader', async () => { - const writer = await SinglePointWriter.fromSeed({ seed: generatePrivateKey() }) - expect(writer).toBeInstanceOf(SinglePointReader) + test('ListWriter.fromSeed() authenticates the DID from the provided seed', async () => { + expect( + ListWriter.fromSeed({ seed: generatePrivateKey(), modelID: 'model' }), + ).resolves.toBeInstanceOf(ListWriter) }) - }) - describe('PointsReader class', () => { - test('getters', () => { - const reader = new PointsReader({ issuer: 'did:key:123' }) - expect(reader.ceramic).toBeInstanceOf(CeramicClient) - expect(reader.loader).toBeInstanceOf(DocumentLoader) - expect(reader.aggregationModelID).toBe(definition.models.TotalPoints!.id) - expect(reader.allocationModelID).toBe(definition.models.MultiplePoints!.id) - }) - - test('uses provided ceramic and modelID params', () => { - const ceramic = new CeramicClient() - const reader = new PointsReader({ - ceramic, - issuer: 'did:key:123', - aggregationModelID: 'testAggragation', - allocationModelID: 'testAllocation', - }) - expect(reader.ceramic).toBe(ceramic) - expect(reader.aggregationModelID).toBe('testAggragation') - expect(reader.allocationModelID).toBe('testAllocation') + test('extends GenericReader', async () => { + const writer = await ListWriter.fromSeed({ seed: generatePrivateKey(), modelID: 'model' }) + expect(writer).toBeInstanceOf(GenericReader) }) }) - describe('PointsWriter class', () => { + describe('SetWriter class', () => { test('requires an authenticated Ceramic DID', async () => { const ceramic = new CeramicClient() expect(() => { - new PointsWriter({ ceramic }) + new SetWriter({ ceramic, modelID: 'model' }) }).toThrow('An authenticated DID instance must be set on the Ceramic client') ceramic.did = await getAuthenticatedDID(generatePrivateKey()) expect(() => { - new PointsWriter({ ceramic }) + new SetWriter({ ceramic, modelID: 'model' }) }).not.toThrow() }) - test('PointsWriter.fromSeed() authenticates the DID from the provided seed', async () => { - expect(PointsWriter.fromSeed({ seed: generatePrivateKey() })).resolves.toBeInstanceOf( - PointsWriter, - ) + test('SetWriter.fromSeed() authenticates the DID from the provided seed', async () => { + expect( + SetWriter.fromSeed({ seed: generatePrivateKey(), modelID: 'model' }), + ).resolves.toBeInstanceOf(SetWriter) }) - test('extends PointsReader', async () => { - const writer = await PointsWriter.fromSeed({ seed: generatePrivateKey() }) - expect(writer).toBeInstanceOf(PointsReader) + test('extends SetReader', async () => { + const writer = await SetWriter.fromSeed({ seed: generatePrivateKey(), modelID: 'model' }) + expect(writer).toBeInstanceOf(SetReader) }) }) @@ -115,119 +109,21 @@ describe('points', () => { await context.dispose() }) - describe('single point per document', () => { - test('write and read with single point documents', async () => { - const reader = new SinglePointReader({ ceramic: context.ceramic, issuer: context.did.id }) - const writer = new SinglePointWriter({ ceramic: context.ceramic }) - // Sanity check no points have been allocated yet - await expect(reader.countTotalPoints()).resolves.toBe(0) - // Add points to a first recipient account - await writer.addPointTo('did:test:123') - await writer.addPointTo('did:test:123') - await writer.addPointTo('did:test:123') - await expect(reader.countTotalPoints()).resolves.toBe(3) - await expect(reader.countPointsFor('did:test:123')).resolves.toBe(3) - await expect(reader.countPointsFor('did:test:456')).resolves.toBe(0) - // Add points to another recipient account - await writer.addPointTo('did:test:456') - await writer.addPointTo('did:test:456') - await expect(reader.countTotalPoints()).resolves.toBe(5) - await expect(reader.countPointsFor('did:test:123')).resolves.toBe(3) - await expect(reader.countPointsFor('did:test:456')).resolves.toBe(2) - }) - - test('multiple single point writers', async () => { - const [did1, did2] = await Promise.all([ - getAuthenticatedDID(generatePrivateKey()), - getAuthenticatedDID(generatePrivateKey()), - ]) - expect(did1.id).not.toBe(did2.id) - // Write points with a first issuer account - context.ceramic.did = did1 - const writer1 = new SinglePointWriter({ ceramic: context.ceramic }) - await writer1.addPointTo('did:test:123') - await expect(writer1.countPointsFor('did:test:123')).resolves.toBe(1) - // Write points with another issuer account - context.ceramic.did = did2 - const writer2 = new SinglePointWriter({ ceramic: context.ceramic }) - await writer2.addPointTo('did:test:123') - await writer2.addPointTo('did:test:123') - await expect(writer2.countPointsFor('did:test:123')).resolves.toBe(2) - // Sanity check the first issuer points count hasn't changed - await expect(writer1.countPointsFor('did:test:123')).resolves.toBe(1) - }) - - test('add and remove points using single point writer', async () => { - const writer = new SinglePointWriter({ ceramic: context.ceramic }) - const firstPoint = await writer.addPointTo('did:test:123') - const secondPoint = await writer.addPointTo('did:test:123') - await expect(writer.countPointsFor('did:test:123')).resolves.toBe(2) - // Check point removal only applies to the specified model - const modelID = definition.models.SinglePoint!.id - await expect(writer.removePoint(modelID)).rejects.toThrow( - `Document ${modelID} is not using the expected model ${modelID}`, - ) - // Remove added points - await writer.removePoint(firstPoint.id.toString()) - await expect(writer.countPointsFor('did:test:123')).resolves.toBe(1) - await writer.removePoint(secondPoint.id.toString()) - await expect(writer.countPointsFor('did:test:123')).resolves.toBe(0) - }) - - test('query single point documents', async () => { - const writer = new SinglePointWriter({ ceramic: context.ceramic }) - const createdDoc = await writer.addPointTo('did:test:123') - const loadedDoc = await writer.loader.load({ id: createdDoc.id.toString() }) - expect(loadedDoc?.id.equals(createdDoc.id)).toBe(true) - const createdDoc1 = await writer.addPointTo('did:test:123') - const createdDoc2 = await writer.addPointTo('did:test:123') - const createdDoc3 = await writer.addPointTo('did:test:123') - const createdDoc4 = await writer.addPointTo('did:test:123') - // First query without cursor, returns the last documents created - const query1 = await writer.queryPointDocumentsFor('did:test:123', { count: 2 }) - expect(query1.documents).toHaveLength(2) - expect(query1.documents.map((doc) => doc.id.toString())).toEqual([ - createdDoc3.id.toString(), - createdDoc4.id.toString(), - ]) - // Second query using cursor from the first query - const query2 = await writer.queryPointDocumentsFor('did:test:123', { - before: query1.startCursor, - }) - expect(query2.documents).toHaveLength(3) - expect(query2.documents.map((doc) => doc.id.toString())).toEqual([ - createdDoc.id.toString(), - createdDoc1.id.toString(), - createdDoc2.id.toString(), - ]) - // Third query for a specific slice in chronological order - const query3 = await writer.queryPointDocumentsFor('did:test:123', { - count: 2, - after: query2.startCursor, - }) - expect(query3.documents).toHaveLength(2) - expect(query3.documents.map((doc) => doc.id.toString())).toEqual([ - createdDoc1.id.toString(), - createdDoc2.id.toString(), - ]) - }) - }) - - describe('multiple points allocation documents', () => { + describe('allocation documents', () => { test('allocate points to multiple recipients', async () => { - const writer = new PointsWriter({ ceramic: context.ceramic }) + const writer = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) // Add points to a first recipient account await writer.allocatePointsTo('did:test:123', 10) await writer.allocatePointsTo('did:test:123', 20) await writer.allocatePointsTo('did:test:123', 5) await expect( - writer.ceramic.index.count({ models: [writer.allocationModelID] }), + context.ceramic.index.count({ models: [SimplePointsAllocationID] }), ).resolves.toBe(3) // Add points to another recipient account await writer.allocatePointsTo('did:test:456', 5) await writer.allocatePointsTo('did:test:456', 10) await expect( - writer.ceramic.index.count({ models: [writer.allocationModelID] }), + context.ceramic.index.count({ models: [SimplePointsAllocationID] }), ).resolves.toBe(5) }) @@ -239,15 +135,15 @@ describe('points', () => { expect(did1.id).not.toBe(did2.id) // Write points with a first issuer account context.ceramic.did = did1 - const writer1 = new PointsWriter({ ceramic: context.ceramic }) + const writer1 = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) await writer1.allocatePointsTo('did:test:123', 10) // Write points with another issuer account context.ceramic.did = did2 - const writer2 = new PointsWriter({ ceramic: context.ceramic }) + const writer2 = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) await writer2.allocatePointsTo('did:test:123', 10) await writer2.allocatePointsTo('did:test:123', 10) // Count how many documents are written by issuer - const modelID = definition.models.MultiplePoints!.id + const modelID = SimplePointsAllocationID await expect(context.ceramic.index.count({ models: [modelID] })).resolves.toBe(3) await expect( context.ceramic.index.count({ account: did1.id, models: [modelID] }), @@ -258,33 +154,33 @@ describe('points', () => { }) test('add and remove points allocation documents', async () => { - const writer = new PointsWriter({ ceramic: context.ceramic }) + const writer = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) const firstPoint = await writer.allocatePointsTo('did:test:123', 5) const secondPoint = await writer.allocatePointsTo('did:test:123', 10) await expect( - writer.ceramic.index.count({ models: [writer.allocationModelID] }), + context.ceramic.index.count({ models: [SimplePointsAllocationID] }), ).resolves.toBe(2) // Check point removal only applies to the specified model - const modelID = definition.models.MultiplePoints!.id + const modelID = SimplePointsAllocationID await expect(writer.removePointsAllocation(modelID)).rejects.toThrow( `Document ${modelID} is not using the expected model ${modelID}`, ) // Remove added points await writer.removePointsAllocation(firstPoint.id.toString()) await expect( - writer.ceramic.index.count({ models: [writer.allocationModelID] }), + context.ceramic.index.count({ models: [SimplePointsAllocationID] }), ).resolves.toBe(1) await writer.removePointsAllocation(secondPoint.id.toString()) await expect( - writer.ceramic.index.count({ models: [writer.allocationModelID] }), + context.ceramic.index.count({ models: [SimplePointsAllocationID] }), ).resolves.toBe(0) }) test('query points allocation documents', async () => { - const writer = new PointsWriter({ ceramic: context.ceramic }) + const writer = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) const createdDoc = await writer.allocatePointsTo('did:test:123', 5) - const loadedDoc = await writer.loader.load({ id: createdDoc.id.toString() }) - expect(loadedDoc?.id.equals(createdDoc.id)).toBe(true) + const loadedDoc = await context.ceramic.loadStream(createdDoc.id) + expect(loadedDoc.id.equals(createdDoc.id)).toBe(true) const createdDoc1 = await writer.allocatePointsTo('did:test:123', 10) const createdDoc2 = await writer.allocatePointsTo('did:test:123', 15) const createdDoc3 = await writer.allocatePointsTo('did:test:123', 5) @@ -319,9 +215,9 @@ describe('points', () => { }) }) - describe('points aggregation documents', () => { + describe('aggregation documents', () => { test('aggregate points', async () => { - const writer = new PointsWriter({ ceramic: context.ceramic }) + const writer = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) await expect(writer.loadAggregationDocumentFor('did:key:123')).resolves.toBeNull() await expect(writer.getAggregationPointsFor('did:key:123')).resolves.toBe(0) const doc = await writer.setPointsAggregationFor('did:key:123', 10) @@ -334,10 +230,10 @@ describe('points', () => { }) test('query aggregation documents', async () => { - const writer = new PointsWriter({ ceramic: context.ceramic }) + const writer = PointsWriter.fromAuthenticated({ ceramic: context.ceramic }) const createdDoc = await writer.setPointsAggregationFor('did:test:1', 5) - const loadedDoc = await writer.loader.load({ id: createdDoc.id.toString() }) - expect(loadedDoc?.id.equals(createdDoc.id)).toBe(true) + const loadedDoc = await context.ceramic.loadStream(createdDoc.id) + expect(loadedDoc.id.equals(createdDoc.id)).toBe(true) const createdDoc1 = await writer.setPointsAggregationFor('did:test:2', 10) const createdDoc2 = await writer.setPointsAggregationFor('did:test:3', 15) const createdDoc3 = await writer.setPointsAggregationFor('did:test:4', 5) diff --git a/package.json b/package.json index af89603..94a708a 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ "@swc/core": "^1.4.13", "@swc/jest": "^0.2.36", "@types/jest": "^29.5.12", - "@typescript-eslint/eslint-plugin": "^7.6.0", - "@typescript-eslint/parser": "^7.6.0", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", "del-cli": "^5.1.0", "eslint": "^8.57.0", "eslint-config-3box": "^1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca1cb53..3816c6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,11 +27,11 @@ importers: specifier: ^29.5.12 version: 29.5.12 '@typescript-eslint/eslint-plugin': - specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.7.0 + version: 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.7.0 + version: 7.7.0(eslint@8.57.0)(typescript@5.4.5) del-cli: specifier: ^5.1.0 version: 5.1.0 @@ -43,7 +43,7 @@ importers: version: 1.0.0(eslint@8.57.0)(jest@29.7.0)(prettier@3.2.5)(typescript@5.4.5) eslint-plugin-jest: specifier: ^28.2.0 - version: 28.2.0(@typescript-eslint/eslint-plugin@7.6.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.5) + version: 28.2.0(@typescript-eslint/eslint-plugin@7.7.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.5) jest: specifier: ^29.7.0 version: 29.7.0 @@ -81,8 +81,8 @@ importers: demo/server: dependencies: '@ceramicnetwork/http-client': - specifier: ^5.6.0 - version: 5.6.0(typescript@5.4.5) + specifier: ^5.7.0 + version: 5.7.0(typescript@5.4.5) body-parser: specifier: ^1.20.2 version: 1.20.2 @@ -142,8 +142,8 @@ importers: specifier: workspace:^ version: link:../../libraries/points '@ceramicnetwork/http-client': - specifier: ^5.6.0 - version: 5.6.0(typescript@5.4.5) + specifier: ^5.7.0 + version: 5.7.0(typescript@5.4.5) uint8arrays: specifier: ^5.0.3 version: 5.0.3 @@ -154,8 +154,8 @@ importers: specifier: workspace:^ version: link:../../composites/points '@ceramicnetwork/http-client': - specifier: ^5.6.0 - version: 5.6.0(typescript@5.4.5) + specifier: ^5.7.0 + version: 5.7.0(typescript@5.4.5) '@composedb/loader': specifier: ^0.7.1 version: 0.7.1(typescript@5.4.5) @@ -179,8 +179,8 @@ importers: specifier: workspace:^ version: link:../../utils/did '@ceramicnetwork/common': - specifier: ^5.5.0 - version: 5.5.0(typescript@5.4.5) + specifier: ^5.6.0 + version: 5.6.0(typescript@5.4.5) '@composedb/types': specifier: ^0.7.1 version: 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) @@ -191,21 +191,21 @@ importers: specifier: workspace:^ version: link:../did '@ceramicnetwork/cli': - specifier: ^5.6.0 - version: 5.6.0(@polkadot/util@12.6.2)(@types/express@4.17.21)(pg@8.11.5)(typescript@5.4.5) + specifier: ^5.7.0 + version: 5.7.0(@polkadot/util@12.6.2)(@types/express@4.17.21)(pg@8.11.5)(typescript@5.4.5) '@ceramicnetwork/core': - specifier: ^5.6.0 - version: 5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5) + specifier: ^5.7.0 + version: 5.7.0(@polkadot/util@12.6.2)(typescript@5.4.5) '@ceramicnetwork/ipfs-daemon': - specifier: ^5.6.0 - version: 5.6.0(typescript@5.4.5) + specifier: ^5.7.0 + version: 5.7.0(typescript@5.4.5) tmp-promise: specifier: ^3.0.3 version: 3.0.3 devDependencies: '@ceramicnetwork/common': - specifier: ^5.5.0 - version: 5.5.0(typescript@5.4.5) + specifier: ^5.6.0 + version: 5.6.0(typescript@5.4.5) '@types/node': specifier: ^20.12.7 version: 20.12.7 @@ -615,11 +615,11 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@ceramicnetwork/3id-did-resolver@5.6.0(typescript@5.4.5): - resolution: {integrity: sha512-AZgu/w+IDFej+l/6D5ysxNEzRuVzL4TOoBS8OuVGD7MNpL4s5FyuEg6xS/QGtnUumuF6WracT51/AzJdz3oqrg==} + /@ceramicnetwork/3id-did-resolver@5.7.0(typescript@5.4.5): + resolution: {integrity: sha512-HXXgAzBcwFDRvh7DCJ9Va1vX+kcppdXCPlVkjQZllblIoxkyLqtmBYX6zhrW4+Xir//YOk30QK37shwIE5E7NA==} dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-tile': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-tile': 5.6.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 least-recent: 1.0.3 multiformats: 13.1.0 @@ -645,10 +645,24 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/anchor-listener@4.6.0(typescript@5.4.5): + resolution: {integrity: sha512-jX4XUSz3ohWZFaRClNvRFOX/fxK0aqqnTpNGUX4Aq/t/O47chQyIxy1u/dpvBOmuBC+BE/ihwILsV89mjokomg==} + dependencies: + '@ceramicnetwork/anchor-utils': 4.6.0(typescript@5.4.5) + '@ethersproject/providers': 5.7.2 + rxjs: 7.8.1 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/anchor-utils@4.5.0(typescript@5.4.5): resolution: {integrity: sha512-7gsjNZq5WuKrdnOIaBoW5MeOr0UJRlkNU4J8KBq4Q73YnIBF1Swhm/T63XnIzq6qffW7LVqDxRkT7Ud1SerNtw==} dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) '@ethersproject/abi': 5.7.0 multiformats: 13.1.0 uint8arrays: 5.0.3 @@ -659,6 +673,21 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/anchor-utils@4.6.0(typescript@5.4.5): + resolution: {integrity: sha512-QJSyw0WBjibXMJHZ/QwD4FWUSq9o/Exx9lRrd1+/CjI2GEIAzgUvBnhtWuiDzNnHfBOOpG2xGG1mzX411HaCuQ==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ethersproject/abi': 5.7.0 + multiformats: 13.1.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/blockchain-utils-linking@5.0.0(typescript@5.4.5): resolution: {integrity: sha512-9WzcRioVzbaxkA9+YTCa+UiOqJnprrK5r3BopPE7gDVk69vpdoEYjf3kP+gmHSQyFUFArwSO9vuYbJ8JQr1k0A==} dependencies: @@ -702,23 +731,50 @@ packages: - utf-8-validate - zod - /@ceramicnetwork/cli@5.6.0(@polkadot/util@12.6.2)(@types/express@4.17.21)(pg@8.11.5)(typescript@5.4.5): - resolution: {integrity: sha512-TZDMTsVWk6tzGV3E1LdTPhZUA3BxPLLGZRbtIhwTU5Pvbs6sCHSTyinGzUQ4zthtXp2vMqIIYHb5C1eZrNdK8A==} + /@ceramicnetwork/blockchain-utils-validation@5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5): + resolution: {integrity: sha512-P91YyzEZB5tuSHF3YCq8h/lk/5XhjwEKsY1NrUqUIsSD/18M7I2vIgZH4dlp/BNCGqzkacCuNicCJsKesxL4fg==} + dependencies: + '@ceramicnetwork/blockchain-utils-linking': 5.0.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ethersproject/contracts': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/wallet': 5.7.0 + '@noble/curves': 1.4.0 + '@polkadot/util-crypto': 7.9.2(@polkadot/util@12.6.2) + '@smontero/eosio-signing-tools': 0.0.6 + '@taquito/utils': 11.2.0 + '@tendermint/sig': 0.6.0 + '@zondax/filecoin-signing-tools': 0.18.6 + caip: 1.1.1 + tweetnacl: 1.0.3 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - '@polkadot/util' + - bufferutil + - debug + - encoding + - typescript + - utf-8-validate + - zod + dev: false + + /@ceramicnetwork/cli@5.7.0(@polkadot/util@12.6.2)(@types/express@4.17.21)(pg@8.11.5)(typescript@5.4.5): + resolution: {integrity: sha512-6qkIlsno5nxwuTBgKqgERijJZmRH0X1rayQ18LG57zR633rY1BeFf9iAb0v6YM9Mwg8jgAnM/oE4L0r+67ut7w==} engines: {node: '>=20.8'} hasBin: true dependencies: '@awaitjs/express': 0.9.0(@types/express@4.17.21)(express@4.19.2) - '@ceramicnetwork/3id-did-resolver': 5.6.0(typescript@5.4.5) - '@ceramicnetwork/codecs': 4.5.0(typescript@5.4.5) - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) - '@ceramicnetwork/core': 5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5) - '@ceramicnetwork/http-client': 5.6.0(typescript@5.4.5) - '@ceramicnetwork/indexing': 4.6.0(pg@8.11.5)(sqlite3@5.1.7)(typescript@5.4.5) - '@ceramicnetwork/ipfs-daemon': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/3id-did-resolver': 5.7.0(typescript@5.4.5) + '@ceramicnetwork/codecs': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/core': 5.7.0(@polkadot/util@12.6.2)(typescript@5.4.5) + '@ceramicnetwork/http-client': 5.7.0(typescript@5.4.5) + '@ceramicnetwork/indexing': 4.7.0(pg@8.11.5)(sqlite3@5.1.7)(typescript@5.4.5) + '@ceramicnetwork/ipfs-daemon': 5.7.0(typescript@5.4.5) '@ceramicnetwork/logger': 5.0.0 '@ceramicnetwork/model-metrics': 1.2.5(typescript@5.4.5) '@ceramicnetwork/observability': 1.4.4 - '@ceramicnetwork/stream-tile': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/stream-tile': 5.6.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 '@stablelib/random': 1.0.2 aws-sdk: 2.1599.0 @@ -790,6 +846,23 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/codecs@4.6.0(typescript@5.4.5): + resolution: {integrity: sha512-cSi1XftZ56rl8fQ6Rrckazv5FaaPAygB6GkK+5L4uTjvjFYC3e23kQhFOKQ+aDQKm6trAfenVjd9V8Gb1EAMzQ==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + cartonne: 3.0.1 + codeco: 1.2.1 + dag-jose: 4.0.0 + multiformats: 13.1.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + /@ceramicnetwork/common@3.4.1(typescript@5.4.5): resolution: {integrity: sha512-SVtPG6tkaDF77iM2mweXV+JSgZa3tKvuku0TIrA+pZswa1EHtnRHssSilaj4q91JNaTy2Gsk86oK6MuQp9+LKg==} dependencies: @@ -844,6 +917,33 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/common@5.6.0(typescript@5.4.5): + resolution: {integrity: sha512-5zNcZRjZ8/G0jKEubE3MpKfdwCB6npdYiBmsHWztt4PjnOn6H+Z3rsnh8RPxoC0liu271rHeJuHViqjtwCW3dg==} + dependencies: + '@ceramicnetwork/streamid': 5.0.0 + '@didtools/cacao': 3.0.1(typescript@5.4.5) + '@didtools/pkh-ethereum': 0.2.1 + '@didtools/pkh-solana': 0.2.0(typescript@5.4.5) + '@didtools/pkh-stacks': 0.2.0(typescript@5.4.5) + '@didtools/pkh-tezos': 0.3.0(typescript@5.4.5) + '@ipld/dag-cbor': 9.2.0 + '@stablelib/random': 1.0.2 + caip: 1.1.1 + flat: 5.0.2 + it-first: 3.0.4 + jet-logger: 1.2.2 + lodash.clonedeep: 4.5.0 + logfmt: 1.4.0 + multiformats: 13.1.0 + rxjs: 7.8.1 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + /@ceramicnetwork/core@5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5): resolution: {integrity: sha512-svRyYxXW1HeP0EhxDjtisrZYfYuPUjMA4ZlM5o4xs6qGO0GJl88ttPTFPA5LI/iWAdzwyeTxpvmORwoq0A+j6w==} engines: {node: '>=20.8'} @@ -913,14 +1013,84 @@ packages: - utf-8-validate - zod - /@ceramicnetwork/http-client@5.6.0(typescript@5.4.5): - resolution: {integrity: sha512-IRdB4Klm3xAnUB/Tuli/vTLi1Ul275RysMxrSEEDfEBru4GA/MG7cXomk4S1MsJ0flP+PD6aag7DyRQZmiYoLA==} + /@ceramicnetwork/core@5.7.0(@polkadot/util@12.6.2)(typescript@5.4.5): + resolution: {integrity: sha512-abN4BU9/WjRFul5Su4v5OAbwvtXUy7IZ3yzpXARIeplaBmAC6jIxAoTk1FdHYQxoHTeywE5h3UOmJROY1oHHrA==} + engines: {node: '>=20.8'} dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-caip10-link': 5.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-model': 4.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-model-instance': 4.6.0(typescript@5.4.5) - '@ceramicnetwork/stream-tile': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/anchor-listener': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/anchor-utils': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/codecs': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/indexing': 4.7.0(pg@8.11.5)(sqlite3@5.1.7)(typescript@5.4.5) + '@ceramicnetwork/ipfs-topology': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/job-queue': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/model-metrics': 1.2.5(typescript@5.4.5) + '@ceramicnetwork/observability': 1.4.4 + '@ceramicnetwork/pinning-aggregation': 5.6.0 + '@ceramicnetwork/pinning-ipfs-backend': 5.6.0 + '@ceramicnetwork/stream-caip10-link': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-caip10-link-handler': 5.7.0(@polkadot/util@12.6.2)(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-handler': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-instance': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-instance-handler': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-tile': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-tile-handler': 5.7.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + '@ceramicnetwork/wasm-bloom-filter': 0.1.0 + '@datastructures-js/priority-queue': 6.3.1 + '@ethersproject/providers': 5.7.2 + '@ipld/dag-cbor': 7.0.3 + '@scarf/scarf': 1.3.0 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/uuid': 1.0.2 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + await-semaphore: 0.1.3 + cartonne: 3.0.1 + codeco: 1.2.1 + dag-jose: 4.0.0 + dids: 5.0.2(typescript@5.4.5) + it-all: 3.0.4 + it-batch: 3.0.4 + it-first: 3.0.4 + knex: 2.5.1(pg@8.11.5)(sqlite3@5.1.7) + least-recent: 1.0.3 + level: 8.0.1 + lodash.clonedeep: 4.5.0 + mapmoize: 1.2.1 + multiformats: 13.1.0 + p-queue: 8.0.1 + pg: 8.11.5 + rxjs: 7.8.1 + sqlite3: 5.1.7 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - '@polkadot/util' + - better-sqlite3 + - bluebird + - bufferutil + - debug + - encoding + - mysql + - mysql2 + - pg-native + - supports-color + - tedious + - typescript + - utf-8-validate + - zod + dev: false + + /@ceramicnetwork/http-client@5.7.0(typescript@5.4.5): + resolution: {integrity: sha512-T6iMr9QpWIkXfVJ8lHGS+DZ7qGmgUaIfuxARgMEA5OhrbtIZWA08Vl3I5r7mIXmj1zWnWAvS/zG/w2roy8VP1w==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-caip10-link': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-instance': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-tile': 5.6.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 '@scarf/scarf': 1.3.0 query-string: 7.1.3 @@ -964,12 +1134,45 @@ packages: - utf-8-validate - zod - /@ceramicnetwork/ipfs-daemon@5.6.0(typescript@5.4.5): - resolution: {integrity: sha512-vSthfsDITmbZAX/AfjGCOUcjV0i5WuQH3qVU+AEpNTb6rM+nB/drZzF9ev/yIkMErV81kIljyV7FIGl/rjgN6g==} + /@ceramicnetwork/indexing@4.7.0(pg@8.11.5)(sqlite3@5.1.7)(typescript@5.4.5): + resolution: {integrity: sha512-T3XcbhG78XJ8jJ/YrU5BcyY1CI56r77DjAsiGJhmdFLi/mVieqj4v/EBi1O2SQeVj67G+35fPfEag9ucw1vvEA==} + dependencies: + '@ceramicnetwork/anchor-listener': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/anchor-utils': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/job-queue': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + '@ethersproject/providers': 5.7.2 + knex: 2.5.1(pg@8.11.5)(sqlite3@5.1.7) + lodash.clonedeep: 4.5.0 + multiformats: 13.1.0 + p-queue: 8.0.1 + pg-boss: 8.4.2 + rxjs: 7.8.1 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - better-sqlite3 + - bufferutil + - encoding + - mysql + - mysql2 + - pg + - pg-native + - sqlite3 + - supports-color + - tedious + - typescript + - utf-8-validate + - zod + dev: false + + /@ceramicnetwork/ipfs-daemon@5.7.0(typescript@5.4.5): + resolution: {integrity: sha512-jK5dmzFo7g0rGZbMEl006/m3F7d+wQmixz0CjM5rxOV9JdUkbCRWlwek0ADz2+3k2x5mTof5KoWMTzx8IK0p0Q==} hasBin: true dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) - '@ceramicnetwork/ipfs-topology': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/ipfs-topology': 5.6.0(typescript@5.4.5) express: 4.19.2 get-port: 7.1.0 go-ipfs: 0.18.1 @@ -998,10 +1201,37 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/ipfs-topology@5.6.0(typescript@5.4.5): + resolution: {integrity: sha512-A+vZzeapteXIhDuNCzFZJyIr2oCaoZDlGUnld3tBB060JEvS9x3HitezZuCmPNN4c7nho81jO6WlkSX+dvaMXQ==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/job-queue@4.6.0(typescript@5.4.5): resolution: {integrity: sha512-YqAcD2yHArZnwU47h4mGYust5K2OmMa9pu9z46lIL2+WBpWrstT5I8Nbr9p+zpZ4JS5y1TZveKVsQFnk9c9iSw==} dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + pg: 8.11.5 + pg-boss: 8.4.2 + rxjs: 7.8.1 + transitivePeerDependencies: + - bufferutil + - encoding + - pg-native + - typescript + - utf-8-validate + - zod + + /@ceramicnetwork/job-queue@4.7.0(typescript@5.4.5): + resolution: {integrity: sha512-Pt0XKPwRD31pDwpaB0Afx36Lb9amvfnAyNOKm/Wcx3sTqT8VlJC+FrNXRYbVUvyHFLBRSMGDeGKN26avrHi66w==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) pg: 8.11.5 pg-boss: 8.4.2 rxjs: 7.8.1 @@ -1012,6 +1242,7 @@ packages: - typescript - utf-8-validate - zod + dev: false /@ceramicnetwork/logger@5.0.0: resolution: {integrity: sha512-migKFIIWNSP8Tu09v8YNTDbxs0jtEMX4tiXqSkwySczmW/J/yMJWBGXbcasxQdmiphBoXFituTbW+jFVQkeTxg==} @@ -1055,6 +1286,13 @@ packages: '@stablelib/sha256': 1.0.1 uint8arrays: 5.0.3 + /@ceramicnetwork/pinning-aggregation@5.6.0: + resolution: {integrity: sha512-qI0nQ8zGBVw3Gd7sdOxrjLCNWlIca8502Th6ljIx00lWpehBy6sVnWd225VkcO3lgZF7hcaiFsBjYevAPnrzuA==} + dependencies: + '@stablelib/sha256': 1.0.1 + uint8arrays: 5.0.3 + dev: false + /@ceramicnetwork/pinning-ipfs-backend@5.5.0: resolution: {integrity: sha512-2e47FvJGFmxjOomhj4dpTfb8OrvbOJA63rW2PYKwhA99FE0HBcbvSgRsejddYC1FsBYlnDsd7iR40wzhM8loyA==} dependencies: @@ -1065,6 +1303,17 @@ packages: - encoding - supports-color + /@ceramicnetwork/pinning-ipfs-backend@5.6.0: + resolution: {integrity: sha512-IvMARgMDlW355HDax62BXB0Y56omIro9HDcwzu9EpqLJoVn9cH4Z098pjWAd7svb1tli7NVCRYZoc2NDMP401Q==} + dependencies: + '@stablelib/sha256': 1.0.1 + ipfs-http-client: 60.0.1 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /@ceramicnetwork/stream-caip10-link-handler@5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5): resolution: {integrity: sha512-pKCipn3y6CflzY/K3oeRyHwDDhBSvFy+jvZPqSbMY5s+96vueBNPsaBcqMZEd2onjl+hMGqjukH+QtGk+S5faQ==} dependencies: @@ -1081,6 +1330,23 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-caip10-link-handler@5.7.0(@polkadot/util@12.6.2)(typescript@5.4.5): + resolution: {integrity: sha512-IeJqL0t7H/rmigEH41dIWgMT/+/nyrri+Vm8wI8tAgjha/YiFqBTOwMYnc0pnX0vYu8CJgYj8gBLnwr/RRlWGw==} + dependencies: + '@ceramicnetwork/blockchain-utils-validation': 5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-caip10-link': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-handler-common': 4.6.0(typescript@5.4.5) + transitivePeerDependencies: + - '@polkadot/util' + - bufferutil + - debug + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/stream-caip10-link@5.5.0(typescript@5.4.5): resolution: {integrity: sha512-X7HFHOuWlMBoZH3gSHbdXVjY8QYiDR5971uvhkNSpzxXV/Q9oqyRAULEFBuAKdH1+FUkaiaCxC2xaVh3ydC5Cg==} dependencies: @@ -1096,6 +1362,21 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-caip10-link@5.6.0(typescript@5.4.5): + resolution: {integrity: sha512-iiqv6W3Xtihne3In+WtUApUaqPnemIRhGE2488VCokF8aZW+DBVRIOUPrHUmPzY1W7kN7ZNDhQgIOU53zfX//w==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + caip: 1.1.1 + did-resolver: 4.1.0 + lodash.clonedeep: 4.5.0 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + /@ceramicnetwork/stream-handler-common@4.5.0(typescript@5.4.5): resolution: {integrity: sha512-WpvAuSEtrHviLj4AOV9muoNb6CfdqkBFWYE6Ph8xRHvL5Q9noBZprn5Mi0wt6XSCe8sydsFM+Cw0A2vhQ37bRw==} dependencies: @@ -1109,6 +1390,20 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-handler-common@4.6.0(typescript@5.4.5): + resolution: {integrity: sha512-yeE+fieU0d4vHIjUYSRWYyojjd4kMqkjowuzEEQV2f6JENc0h+uyeY0WA0Fd81UkoJ40v8AHJGvL0qksMbVSCA==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + lodash.clonedeep: 4.5.0 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/stream-model-handler@4.6.0(typescript@5.4.5): resolution: {integrity: sha512-+pP6xoBlOl4LIMAHEp4RXwk5DclnQ/TnE8dgBYWDI3OhGEsCzY911v+y1J2ldTic5UxakE/tNMm2a4Rh60PBQQ==} dependencies: @@ -1130,6 +1425,28 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-model-handler@4.7.0(typescript@5.4.5): + resolution: {integrity: sha512-2Zuh8lNXEgVfikuIFuDYQ3IYWNTOdDBr0EYRXK4d2/idDeEa00zBDvaJc9WY7aNXF+L3Z5Zz/1HmDfZzabLKAA==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-handler-common': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + fast-json-patch: 3.1.1 + json-ptr: 3.1.1 + lodash.clonedeep: 4.5.0 + lodash.ismatch: 4.4.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/stream-model-instance-handler@4.6.0(typescript@5.4.5): resolution: {integrity: sha512-K4XnwsXFTfLIPUii9GaJDvJ369XFtJ7Ye8ZFZaaMPnmS6B0wb55k4fTNrAXWULUx7Rn4PoFjXgvxPcSm9nKCQA==} dependencies: @@ -1151,6 +1468,28 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-model-instance-handler@4.7.0(typescript@5.4.5): + resolution: {integrity: sha512-TS4HVFdYHjq4YalGx+fL5an8riInJBLzMtRzWln/qShnn6CGtirnKKQeorj3WMP1EhcSeHzp836+hGvT+xEdbQ==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-handler-common': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-instance': 4.7.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + fast-json-patch: 3.1.1 + least-recent: 1.0.3 + lodash.clonedeep: 4.5.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/stream-model-instance@2.4.1(typescript@5.4.5): resolution: {integrity: sha512-vp+oY27BFM64pXN2l4riwK3/3rN1DCEZe/iBrWWJ79SC99S9jFsSnx2TB0RLkBF+n87IsWi+t1WA+FR1KNIe/Q==} dependencies: @@ -1171,7 +1510,24 @@ packages: /@ceramicnetwork/stream-model-instance@4.6.0(typescript@5.4.5): resolution: {integrity: sha512-uksXGq4ytcR9bHgLm68t2unsk2QCOqEVOnGWmZH7G47XvbfV/Bm18NAO9cZagSRa5ogbCf4+N3AuZtLg/TDWKA==} dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + '@ipld/dag-cbor': 7.0.3 + '@stablelib/random': 1.0.2 + fast-json-patch: 3.1.1 + object-sizeof: 2.6.4 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + + /@ceramicnetwork/stream-model-instance@4.7.0(typescript@5.4.5): + resolution: {integrity: sha512-g3h53Tyz7Z7XE6NmBYidOfOBEbaqf5Ja5vi5J3pUIaTpgulB+i5PqK3WjfNKwmUhcxBEGb+7ThiXhm/PqqHOHQ==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 '@ipld/dag-cbor': 7.0.3 '@stablelib/random': 1.0.2 @@ -1189,7 +1545,29 @@ packages: resolution: {integrity: sha512-I0jYlptr4v31T3VlSwvYMggrx2DLahsC1u5ErVRBZeW8NeY/7VWUzKVQtuOfc5Wa2XdRJ7ODINyszWKb6nIneg==} dependencies: '@ceramicnetwork/codecs': 4.5.0(typescript@5.4.5) - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + '@ipld/dag-cbor': 7.0.3 + '@stablelib/random': 1.0.2 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + codeco: 1.2.1 + fast-json-patch: 3.1.1 + json-schema-typed: 8.0.1 + multiformats: 13.1.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + + /@ceramicnetwork/stream-model@4.6.0(typescript@5.4.5): + resolution: {integrity: sha512-PqlwttvCtZ5dAXqLBL3JdUxT6sclsxt4BHO4iwojiPOxUSZRnVWY8v1nUISfF9UKUqg3Y2Fv/+ZHGonGPFqbYg==} + dependencies: + '@ceramicnetwork/codecs': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 '@ipld/dag-cbor': 7.0.3 '@stablelib/random': 1.0.2 @@ -1227,6 +1605,27 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-tile-handler@5.7.0(typescript@5.4.5): + resolution: {integrity: sha512-37wk4SfFXH0oQMvA+0EisNi5zlFGJiU99bF5gY4w0ZcB1CRyRRwEklE/5KOhJkyYAylGAwtvkz7R2vDytCkSUQ==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-handler-common': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-tile': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + fast-json-patch: 3.1.1 + least-recent: 1.0.3 + lodash.clonedeep: 4.5.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + dev: false + /@ceramicnetwork/stream-tile@5.5.0(typescript@5.4.5): resolution: {integrity: sha512-KhY5u553qh1Cl0R1BZbxvXpzDyW2p+lGzzDvQYO7et2D7KKqd9O0mkFSCzlsJC43xcOwY00JkbcRtHX3JhzabA==} dependencies: @@ -1245,6 +1644,24 @@ packages: - utf-8-validate - zod + /@ceramicnetwork/stream-tile@5.6.0(typescript@5.4.5): + resolution: {integrity: sha512-VoIZARWDEAHX6nZyiu6X2C5rg87LY/Vkgd1yAnNXZOqEM5RlBejsxsqoljJQD76XYq7MQZcPxD44zZXqu5aa8w==} + dependencies: + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/streamid': 5.0.0 + '@ipld/dag-cbor': 7.0.3 + '@stablelib/random': 1.0.2 + dids: 5.0.2(typescript@5.4.5) + fast-json-patch: 3.1.1 + lodash.clonedeep: 4.5.0 + uint8arrays: 5.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - typescript + - utf-8-validate + - zod + /@ceramicnetwork/streamid@3.4.1: resolution: {integrity: sha512-m6uZjcdMdwzyO6TIVTJF4IJYjuceflmYDrlRxDcXrZySBNNKnL40tSHbzpcTfOy5YcIsTqJFxqUZQrFrC0mlDA==} dependencies: @@ -1282,9 +1699,9 @@ packages: resolution: {integrity: sha512-LUMnaiNUbBLqqifxAybAigG+n7F+u8xhLOPsPR0F0KHPtJkJ8sXm0lpcHQPx6B4Tm5Tlb6F7Tu27WvGp+7wVCA==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/http-client': 5.6.0(typescript@5.4.5) - '@ceramicnetwork/stream-model': 4.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-model-instance': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/http-client': 5.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-instance': 4.7.0(typescript@5.4.5) '@composedb/constants': 0.7.1 '@composedb/graphql-scalars': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) '@composedb/runtime': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) @@ -1322,7 +1739,7 @@ packages: peerDependencies: '@composedb/devtools': ^0.7.1 dependencies: - '@ceramicnetwork/http-client': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/http-client': 5.7.0(typescript@5.4.5) '@composedb/client': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) '@composedb/devtools': 0.7.1(@polkadot/util@12.6.2)(graphql@16.8.1)(typescript@5.4.5) '@composedb/runtime': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) @@ -1349,13 +1766,13 @@ packages: resolution: {integrity: sha512-J9IFquEmJL/0gwl3BUerXUR3tOm9v8dd3oucrRbuYDbZXLN803mptOQqQEDxzncfkF80CjVh0qtWZ6dTaYGVHQ==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-model': 4.5.0(typescript@5.4.5) + '@ceramicnetwork/common': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 '@composedb/graphql-scalars': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) '@didtools/cacao': 3.0.1(typescript@5.4.5) '@graphql-tools/schema': 10.0.3(graphql@16.8.1) - '@graphql-tools/utils': 10.1.2(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) change-case: 5.4.4 json-ptr: 3.1.1 lodash-es: 4.17.21 @@ -1427,9 +1844,9 @@ packages: resolution: {integrity: sha512-ijv1/jNWYAwhsnJYJbyGT8MrQgZoIhDGDoD6ggF5VbcC8bYZcK88yNwASxT3s9NxQTelKznidvk9V14MxN8RUA==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/http-client': 5.6.0(typescript@5.4.5) - '@ceramicnetwork/stream-model': 4.5.0(typescript@5.4.5) - '@ceramicnetwork/stream-model-instance': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/http-client': 5.7.0(typescript@5.4.5) + '@ceramicnetwork/stream-model': 4.6.0(typescript@5.4.5) + '@ceramicnetwork/stream-model-instance': 4.7.0(typescript@5.4.5) '@ceramicnetwork/streamid': 5.0.0 '@composedb/graphql-scalars': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) '@composedb/loader': 0.7.1(typescript@5.4.5) @@ -1456,7 +1873,7 @@ packages: resolution: {integrity: sha512-5sq73SM2zJeCiVRpAWbHvI6au2lPq+IiHUVElqrzJ2dGZmDxAOV0BOvCip0xlrW4KThiFuLNyJyiYwwlEwUO1w==} engines: {node: '>=20'} dependencies: - '@ceramicnetwork/http-client': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/http-client': 5.7.0(typescript@5.4.5) '@composedb/constants': 0.7.1 '@composedb/runtime': 0.7.1(@polkadot/util@12.6.2)(typescript@5.4.5) get-port: 7.1.0 @@ -1485,7 +1902,7 @@ packages: dependencies: '@ceramicnetwork/common': 5.5.0(typescript@5.4.5) '@ceramicnetwork/core': 5.6.0(@polkadot/util@12.6.2)(typescript@5.4.5) - '@ceramicnetwork/http-client': 5.6.0(typescript@5.4.5) + '@ceramicnetwork/http-client': 5.7.0(typescript@5.4.5) '@ceramicnetwork/stream-model': 4.5.0(typescript@5.4.5) '@ceramicnetwork/stream-model-instance': 4.6.0(typescript@5.4.5) dids: 5.0.2(typescript@5.4.5) @@ -2284,6 +2701,19 @@ packages: tslib: 2.6.2 dev: false + /@graphql-tools/utils@10.1.3(graphql@16.8.1): + resolution: {integrity: sha512-loco2ctrrMQzdpSHbcOo6+Ecp21BV67cQ2pNGhuVKAexruu01RdLn3LgtK47B9BpLz3cUD6U0u1R0rur7xMOOg==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + cross-inspect: 1.0.0 + dset: 3.1.3 + graphql: 16.8.1 + tslib: 2.6.2 + dev: false + /@graphql-tools/wrap@10.0.5(graphql@16.8.1): resolution: {integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==} engines: {node: '>=16.0.0'} @@ -4051,8 +4481,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} + /@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -4063,11 +4493,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.6.0 - '@typescript-eslint/type-utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.6.0 + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/type-utils': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 graphemer: 1.4.0 @@ -4101,8 +4531,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} + /@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -4111,10 +4541,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.6.0 - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.6.0 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 typescript: 5.4.5 @@ -4138,12 +4568,12 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/scope-manager@7.6.0: - resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} + /@typescript-eslint/scope-manager@7.7.0: + resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/visitor-keys': 7.6.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 dev: true /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): @@ -4166,8 +4596,8 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} + /@typescript-eslint/type-utils@7.7.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -4176,8 +4606,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.5) @@ -4196,8 +4626,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.6.0: - resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} + /@typescript-eslint/types@7.7.0: + resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} engines: {node: ^18.18.0 || >=20.0.0} dev: true @@ -4244,8 +4674,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.5): - resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} + /@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5): + resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -4253,8 +4683,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/visitor-keys': 7.6.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 @@ -4305,8 +4735,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} + /@typescript-eslint/utils@7.7.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -4314,9 +4744,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.6.0 - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: @@ -4340,11 +4770,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.6.0: - resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} + /@typescript-eslint/visitor-keys@7.7.0: + resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.6.0 + '@typescript-eslint/types': 7.7.0 eslint-visitor-keys: 3.4.3 dev: true @@ -4416,6 +4846,19 @@ packages: dependencies: typescript: 5.4.5 + /abstract-level@1.0.4: + resolution: {integrity: sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==} + engines: {node: '>=12'} + dependencies: + buffer: 6.0.3 + catering: 2.1.1 + is-buffer: 2.0.5 + level-supports: 4.0.1 + level-transcoder: 1.0.1 + module-error: 1.0.2 + queue-microtask: 1.2.3 + dev: false + /abstract-leveldown@6.0.3: resolution: {integrity: sha512-jzewKKpZbaYUa6HTThnrl+GrJhzjEAeuc7hTVpZdzg7kupXZFoqQDFwyOwLNbmJKJlmzw8yiipMPkDiuKkT06Q==} engines: {node: '>=6'} @@ -5029,6 +5472,15 @@ packages: /brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + /browser-level@1.0.1: + resolution: {integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==} + dependencies: + abstract-level: 1.0.4 + catering: 2.1.1 + module-error: 1.0.2 + run-parallel-limit: 1.1.0 + dev: false + /browser-readablestream-to-it@1.0.3: resolution: {integrity: sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==} @@ -5337,6 +5789,18 @@ packages: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true + /classic-level@1.4.1: + resolution: {integrity: sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==} + engines: {node: '>=12'} + requiresBuild: true + dependencies: + abstract-level: 1.0.4 + catering: 2.1.1 + module-error: 1.0.2 + napi-macros: 2.2.2 + node-gyp-build: 4.8.0 + dev: false + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -6222,7 +6686,7 @@ packages: '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) eslint-config-prettier: 8.10.0(eslint@8.57.0) eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0) eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.5) eslint-plugin-prettier: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-react: 7.34.1(eslint@8.57.0) @@ -6268,7 +6732,7 @@ packages: enhanced-resolve: 5.16.0 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.3 is-core-module: 2.13.1 @@ -6310,7 +6774,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -6331,7 +6795,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -6339,7 +6803,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -6349,7 +6813,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.4.5) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -6358,7 +6822,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -6396,7 +6860,7 @@ packages: - typescript dev: true - /eslint-plugin-jest@28.2.0(@typescript-eslint/eslint-plugin@7.6.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.5): + /eslint-plugin-jest@28.2.0(@typescript-eslint/eslint-plugin@7.7.0)(eslint@8.57.0)(jest@29.7.0)(typescript@5.4.5): resolution: {integrity: sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==} engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} peerDependencies: @@ -6409,7 +6873,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 jest: 29.7.0 @@ -8823,6 +9287,19 @@ packages: engines: {node: '>=10'} dev: false + /level-supports@4.0.1: + resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} + engines: {node: '>=12'} + dev: false + + /level-transcoder@1.0.1: + resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} + engines: {node: '>=12'} + dependencies: + buffer: 6.0.3 + module-error: 1.0.2 + dev: false + /level-ts@2.1.0: resolution: {integrity: sha512-nzj/cy60OO7Pb4ofzpN0Xq+NiZaOI2f6FDWZGBczJJWxVHlPdcLJXAUQa8HuPdeLojPNBH3byr2l7rNCRF4VCQ==} dependencies: @@ -8845,6 +9322,15 @@ packages: leveldown: 5.6.0 opencollective-postinstall: 2.0.3 + /level@8.0.1: + resolution: {integrity: sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ==} + engines: {node: '>=12'} + dependencies: + abstract-level: 1.0.4 + browser-level: 1.0.1 + classic-level: 1.4.1 + dev: false + /leveldown@5.6.0: resolution: {integrity: sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==} engines: {node: '>=8.6.0'} @@ -9301,6 +9787,11 @@ packages: engines: {node: '>=10'} hasBin: true + /module-error@1.0.2: + resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} + engines: {node: '>=10'} + dev: false + /morgan@1.10.0: resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} engines: {node: '>= 0.8.0'} @@ -9378,6 +9869,10 @@ packages: /napi-macros@2.0.0: resolution: {integrity: sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==} + /napi-macros@2.2.2: + resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} + dev: false + /native-fetch@3.0.0(node-fetch@2.7.0): resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} peerDependencies: @@ -10168,7 +10663,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.12.7 + '@types/node': 18.19.31 long: 5.2.3 /protons-runtime@5.4.0: @@ -10515,6 +11010,12 @@ packages: dependencies: nanoid: 3.3.7 + /run-parallel-limit@1.1.0: + resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} + dependencies: + queue-microtask: 1.2.3 + dev: false + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: diff --git a/utils/ceramic/package.json b/utils/ceramic/package.json index 2c94476..0d8652a 100644 --- a/utils/ceramic/package.json +++ b/utils/ceramic/package.json @@ -32,14 +32,14 @@ "prepublishOnly": "package-check" }, "dependencies": { - "@ceramicnetwork/cli": "^5.6.0", - "@ceramicnetwork/core": "^5.6.0", - "@ceramicnetwork/ipfs-daemon": "^5.6.0", "@ceramic-solutions/did-utils": "workspace:^", + "@ceramicnetwork/cli": "^5.7.0", + "@ceramicnetwork/core": "^5.7.0", + "@ceramicnetwork/ipfs-daemon": "^5.7.0", "tmp-promise": "^3.0.3" }, "devDependencies": { - "@ceramicnetwork/common": "^5.5.0", + "@ceramicnetwork/common": "^5.6.0", "@types/node": "^20.12.7", "dids": "^5.0.2" }