Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: sync encode/decode delegations #276

Merged
merged 4 commits into from
Dec 12, 2022
Merged

feat: sync encode/decode delegations #276

merged 4 commits into from
Dec 12, 2022

Conversation

hugomrdias
Copy link
Contributor

@hugomrdias hugomrdias commented Dec 9, 2022

  • add methods toBytes and fromBytes useful to store as bytes instead of strings
  • encodeDelegations is now `delegationsToString``
  • decodeDelegations is now `stringToDelegations``
  • all functions are sync now

Writing delegations to a car uses @ipld/car/buffer-writer now to make it sync, reading from a CAR it's more complicated 🤫.
ipld/car does not support sync reading so this PR includes a refactor of CarReader to be sync, this is a temporary solution until i can get a proper PR to ipld/car to add support for sync reading. It's not trivial to do so because of the way ipld/car code is structured and i dont want to just add a sync copy/paste of the decoder functions to it.

@hugomrdias hugomrdias linked an issue Dec 9, 2022 that may be closed by this pull request
@hugomrdias hugomrdias requested a review from alanshaw December 9, 2022 15:48
@hugomrdias hugomrdias temporarily deployed to dev December 9, 2022 16:46 — with GitHub Actions Inactive
@hugomrdias hugomrdias requested a review from olizilla December 12, 2022 12:13
- add methods toBytes and fromBytes useful to store as bytes instead of strings
- `encodeDelegations` is now `delegationsToString``
- `decodeDelegations` is now `stringToDelegations``
- all functions are sync now
@hugomrdias hugomrdias temporarily deployed to dev December 12, 2022 12:17 — with GitHub Actions Inactive
}
const headerLength = CarBufferWriter.estimateHeaderLength(roots.length)
const writer = CarBufferWriter.createWriter(
new ArrayBuffer(headerLength + byteLength),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is kinda weird seeing as we have all the blocks already. Would be nicer if it just collected all the buffers and joined them together when we call close()

@hugomrdias hugomrdias merged commit ab981fb into main Dec 12, 2022
@hugomrdias hugomrdias deleted the feat/car-sync branch December 12, 2022 19:29
olizilla pushed a commit that referenced this pull request Dec 13, 2022
🤖 I have created a release *beep* *boop*
---


##
[5.1.0](upload-client-v5.0.0...upload-client-v5.1.0)
(2022-12-13)


### Features

* sync encode/decode delegations
([#276](#276))
([ab981fb](ab981fb))
* upload/remove returns removed item
([#289](#289))
([5e6681f](5e6681f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
alanshaw pushed a commit that referenced this pull request Dec 13, 2022
🤖 I have created a release *beep* *boop*
---


##
[9.1.0](access-v9.0.1...access-v9.1.0)
(2022-12-13)


### Features

* sync encode/decode delegations
([#276](#276))
([ab981fb](ab981fb))


### Bug Fixes

* destructured save
([#272](#272))
([a4f20a9](a4f20a9))
* handle Buffer serialization
([#277](#277))
([6dc77ca](6dc77ca))
* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([c8a9ce5](c8a9ce5)),
closes [#280](#280)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
hugomrdias added a commit that referenced this pull request Dec 13, 2022
🤖 I have created a release *beep* *boop*
---


##
[2.1.0](capabilities-v2.0.0...capabilities-v2.1.0)
(2022-12-13)


### Features

* sync encode/decode delegations
([#276](#276))
([ab981fb](ab981fb))


### Bug Fixes

* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([c8a9ce5](c8a9ce5)),
closes [#280](#280)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
hugomrdias added a commit that referenced this pull request Dec 13, 2022
🤖 I have created a release *beep* *boop*
---


##
[4.0.0](access-api-v3.0.0...access-api-v4.0.0)
(2022-12-13)


### ⚠ BREAKING CHANGES

* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
* access-client store decoupling
([#228](#228))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
* follow up on the capabilities extract
([#239](#239))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
* bump to 0.9
([#116](#116))

### Features

* [#153](#153)
([#177](#177))
([d6d448c](d6d448c))
* access-api uses DID env variable when building its ucanto server id
([#275](#275))
([311da78](311da78))
* **access-client:** cli and recover
([#207](#207))
([adb3a8d](adb3a8d))
* account recover with email
([#149](#149))
([6c659ba](6c659ba))
* bump to 0.9
([#116](#116))
([3e0b63f](3e0b63f))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
([6496773](6496773))
* follow up on the capabilities extract
([#239](#239))
([ef5e779](ef5e779))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
([878f8c9](878f8c9)),
closes [#117](#117)
[#121](#121)
* Revert "feat!: upgrade to `@ucanto/{interface,principal}`@^4.0.0"
([#245](#245))
([c182bbe](c182bbe))
* sync encode/decode delegations
([#276](#276))
([ab981fb](ab981fb))
* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
([5e663d1](5e663d1))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
([2f3bab8](2f3bab8))


### Bug Fixes

* 0.9 ([#78](#78))
([1b1ed01](1b1ed01))
* add validation copy
([#257](#257))
([7f50af4](7f50af4)),
closes [#139](#139)
* fix Access API cannot get space/info
[#243](#243)
([#255](#255))
([1bacd54](1bacd54))
* fix d1 migrations
([#264](#264))
([fb8c09d](fb8c09d))
* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([c8a9ce5](c8a9ce5)),
closes [#280](#280)
* make multiformats 9 go away
([#133](#133))
([2668880](2668880))
* miniflare dev script
([#137](#137))
([1c5a4e2](1c5a4e2))
* testing staging deploy
([3d500fa](3d500fa))
* try to deploy api staging
([18b7b29](18b7b29))
* try to deploy staging
([c616818](c616818))


### Code Refactoring

* access-client store decoupling
([#228](#228))
([a785278](a785278))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
- add methods toBytes and fromBytes useful to store as bytes instead of
strings
- `encodeDelegations` is now `delegationsToString``
- `decodeDelegations` is now `stringToDelegations``
- all functions are sync now

Writing delegations to a car uses `@ipld/car/buffer-writer` now to make
it sync, reading from a CAR it's more complicated 🤫.
`ipld/car` does not support sync reading so this PR includes a refactor
of `CarReader` to be sync, this is a temporary solution until i can get
a proper PR to `ipld/car` to add support for sync reading. It's not
trivial to do so because of the way ipld/car code is structured and i
dont want to just add a sync copy/paste of the decoder functions to it.
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[5.1.0](upload-client-v5.0.0...upload-client-v5.1.0)
(2022-12-13)


### Features

* sync encode/decode delegations
([#276](#276))
([9d48372](9d48372))
* upload/remove returns removed item
([#289](#289))
([472d6b6](472d6b6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[9.1.0](access-v9.0.1...access-v9.1.0)
(2022-12-13)


### Features

* sync encode/decode delegations
([#276](#276))
([9d48372](9d48372))


### Bug Fixes

* destructured save
([#272](#272))
([b6aaf9b](b6aaf9b))
* handle Buffer serialization
([#277](#277))
([8e8f745](8e8f745))
* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([7f09479](7f09479)),
closes [#280](#280)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[2.1.0](capabilities-v2.0.0...capabilities-v2.1.0)
(2022-12-13)


### Features

* sync encode/decode delegations
([#276](#276))
([9d48372](9d48372))


### Bug Fixes

* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([7f09479](7f09479)),
closes [#280](#280)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
gobengo pushed a commit that referenced this pull request Apr 11, 2023
🤖 I have created a release *beep* *boop*
---


##
[4.0.0](access-api-v3.0.0...access-api-v4.0.0)
(2022-12-13)


### ⚠ BREAKING CHANGES

* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
* access-client store decoupling
([#228](#228))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
* follow up on the capabilities extract
([#239](#239))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
* bump to 0.9
([#116](#116))

### Features

* [#153](#153)
([#177](#177))
([7fbf2a1](7fbf2a1))
* access-api uses DID env variable when building its ucanto server id
([#275](#275))
([e8326ec](e8326ec))
* **access-client:** cli and recover
([#207](#207))
([720dafb](720dafb))
* account recover with email
([#149](#149))
([91ad47d](91ad47d))
* bump to 0.9
([#116](#116))
([29cf63c](29cf63c))
* doc capabilities & make requierd nb non-optionals
([#159](#159))
([f6b6d06](f6b6d06))
* follow up on the capabilities extract
([#239](#239))
([717fcaa](717fcaa))
* Remove 0.8 caps and add account delegation to the service
([#123](#123))
([c3c58b9](c3c58b9)),
closes [#117](#117)
[#121](#121)
* Revert "feat!: upgrade to `@ucanto/{interface,principal}`@^4.0.0"
([#245](#245))
([197439e](197439e))
* sync encode/decode delegations
([#276](#276))
([9d48372](9d48372))
* upgrade access-api @ucanto/* and @ipld/dag-ucan major versions
([#246](#246))
([65d191c](65d191c))
* upgrade to `@ucanto/{interface,principal}`@^4.0.0
([#238](#238))
([309aff0](309aff0))


### Bug Fixes

* 0.9 ([#78](#78))
([561c68b](561c68b))
* add validation copy
([#257](#257))
([0bd49ce](0bd49ce)),
closes [#139](#139)
* fix Access API cannot get space/info
[#243](#243)
([#255](#255))
([1a74031](1a74031))
* fix d1 migrations
([#264](#264))
([5b8a6e7](5b8a6e7))
* make d1 spaces.metadata nullable and change to kysely
([#284](#284))
([7f09479](7f09479)),
closes [#280](#280)
* make multiformats 9 go away
([#133](#133))
([cdb4109](cdb4109))
* miniflare dev script
([#137](#137))
([f2cffb2](f2cffb2))
* testing staging deploy
([975cffc](975cffc))
* try to deploy api staging
([5130464](5130464))
* try to deploy staging
([4e56657](4e56657))


### Code Refactoring

* access-client store decoupling
([#228](#228))
([64c7496](64c7496))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

implement sync car encoding
2 participants