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

fix!: conform to Delegated Routing V1 HTTP spec #41

Merged
merged 19 commits into from
Oct 25, 2023
Merged

Conversation

hacdias
Copy link
Member

@hacdias hacdias commented Oct 13, 2023

Conform to Routing V1 HTTP spec: https://specs.ipfs.tech/routing/http-routing-v1/

I'm giving a talk on IPFS Connect about Delegated Routing. It would be useful to have some JavaScript library with the latest. I will definitely need some pointers from TS folks.

  • Client
    • GET /providers
    • GET /peers
    • GET /ipns
    • PUT /ipns
    • Tests
  • Server
    • GET /providers
    • GET /peers
    • GET /ipns
    • PUT /ipns
    • Tests

@hacdias hacdias changed the title refactor!: refactor!: conform to Routing V1 HTTP spec Oct 13, 2023
@achingbrain achingbrain changed the title refactor!: conform to Routing V1 HTTP spec fix!: conform to Routing V1 HTTP spec Oct 13, 2023
Copy link
Member

@achingbrain achingbrain left a comment

Choose a reason for hiding this comment

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

Thanks for opening this, some comments inline

packages/client/README.md Outdated Show resolved Hide resolved
packages/client/src/index.ts Outdated Show resolved Hide resolved
packages/client/src/index.ts Outdated Show resolved Hide resolved
packages/client/src/index.ts Outdated Show resolved Hide resolved
packages/client/src/client.ts Outdated Show resolved Hide resolved
packages/client/src/client.ts Outdated Show resolved Hide resolved
packages/client/src/client.ts Outdated Show resolved Hide resolved
packages/server/README.md Outdated Show resolved Hide resolved
packages/client/src/index.ts Outdated Show resolved Hide resolved
@@ -41,7 +60,22 @@ export interface RoutingV1HttpApiClient {
* Returns an async generator of PeerInfos that can provide the content
* for the passed CID
*/
getProviders(cid: CID, options?: AbortOptions): AsyncGenerator<PeerInfo>
getProviders(cid: CID, options?: AbortOptions): AsyncGenerator<Record>
Copy link
Member

Choose a reason for hiding this comment

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

Can the return type be guaranteed to be BitswapRecord?

Copy link
Member Author

Choose a reason for hiding this comment

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

@achingbrain we don't want BitswapRecords to be used, see https://specs.ipfs.tech/routing/http-routing-v1/#get-routing-v1-providers-cid - it should be a generic record. PeerRecords are recommended.

Copy link
Member

Choose a reason for hiding this comment

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

Then can the return type be guaranteed to be PeerRecord? What I'm getting at here is it makes the users life easier if they don't have to deal with a union type.

Copy link
Member

@lidel lidel Oct 18, 2023

Choose a reason for hiding this comment

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

There could be other schemas than peer. But in practice we can limit this to PeerRecord responses: ignore unknown schemas unless they have ID and Addrs fields like the legacy bitswap schema, and interpret them aspeer schema.

For the wider context, the only /routing/v1 implementation (afaik) that returned bitswap schema was cid.contact (IPNI), and it had ID and Addrs just like peer schema does.

Copy link
Member

Choose a reason for hiding this comment

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

Ok, sounds like we can just convert any BitswapRecords to PeerRecords and drop the union type then.

@BigLep
Copy link

BigLep commented Oct 16, 2023

@achingbrain (or others on the Helia team):

  1. Given work is happening here, can you please take on Clarify scope  #35 ? I'm particularly interested in how this relates to https://github.com/libp2p/js-http-v1-content-routing
  2. Is this addressing "task for browser-accessible delegated routing" in [🏆 Golden path scenario] Browsers can reliably retrieve content from any modern Kubo node providing content helia#255 ? If so, can we please update the task list to reference this issue?

@hacdias
Copy link
Member Author

hacdias commented Oct 16, 2023

@achingbrain I can't reproduce the failing test in ubuntu. Do you have any idea what might be causing it? Other than that, this PR is ready for review.

Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

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

@hacdias fwiw I can reproduce error locally: the npm run test:node is failing for me with the same error as CI (nodejs v20.6.1 on linux).

It looks like

https://github.com/ipfs/helia-routing-v1-http-api/blob/1dd9e7019b0f1d647ac663090c7d9690665a33e7/packages/server/test/index.spec.ts#L280

returns some random bytes from memory instead of the valid ipns record:

> console.log(new TextDecoder('utf-8').decode(new Uint8Array(arrayBuffer)))
{"Providers":[{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWSAPTftgtTWjvVYXVChuqXxkU8b7cx1dKbUoiHNQ9iJbc","Addrs":["/ip4/123.123.123.123/tcp/123"]},{"Schema":"peer","Protocols":�%�Z�%@port-bitswap"],"ID":"12D3KooWA6yLJzjuidJ8SCiQcESWdcfsLXdtwACsPU9iiSzZzwNh","Addrs":["/ip4/123.123.123.123/tcp/123"]}]}�֘% ��/�X-�c����3�C���VS
�%�Z�for= reamD{{{{V�֘%V{{{{{ +�r|Ȃ���`��s�Qx�C�%lQ����T��se@)-��Ҧ]��ŭ1��|#��>�Ec�]ʵ��9+�r|Ȃ���`��s�Qx�C�%lQ����T��%V���%V{{{{V{@V{{{{{{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWRhjNhkGatKpVm7cLjC7u5oPqRsqU2sRoq2xd92daw8eP","Addrs":["/ip4/123.123.123.123/tcp/123"]}
{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWBnEiZbtipzpfuSHtwjm52pXdSBDgJn4G6yLRpiPZsyS5","Addrs":["/ip4/123.123.123.123/tcp/123"]}
eadykpr{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWRhjNhkGatKpVm7cLjC7u5oPqRsqU2sRoq2xd92daw8eP","Addrs":["/ip4/123.123.123.123/tcp/123"]}
{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWBnEiZbtipzpfuSHtwjm52pXdSBDgJn4G6yLRpiPZsyS5","Addrs":["/ip4/123.123.123.123/tcp/123"]}
{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWRhjNhkGatKpVm7cLjC7u5oPqRsqU2sRoq2xd92daw8eP","Addrs":["/ip4/123.123.123.123/tcp/123"]}
{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWBnEiZbtipzpfuSHtwjm52pXdSBDgJn4G6yLRpiPZsyS5","Addrs":["/ip4/123.123.123.123/tcp/123"]}
�=\��n�LC��p�]�*�E$<%�h����&@@,j&.��OK�H��0lDP��o殐b��hqx;��0�}7\vZ�N��*�E$<%�h����& ��	�pOoYo
{{{{{{{{{{"Peers":[{"Schema":"peer","Protocols":["transport-bitswap"],"ID":"12D3KooWLZreCQLmSjdwhA3jGXYZGwjtooMJ38qkrGdkxoP7fyJS","Addrs":["/ip4/123.123.123.123/tcp/123"]}] ��1���Ażȸ�d=""��
%@G%��O+W(��[�S̠4��fo�1b*�^���|�{��1���Ażȸ�d=""��                                                                                                                                             ��n��k�
 �oQ�9�1c��z�au2K��0jS�Lf1�0�@F��׹������t[�2 WT�;�5�hc�oQ�9�1c��z�au2K��0jS�Lf1�0�J2023-10-19T00:59:05.157000000Z/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4�cTTL��eValueXA/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4hSequencehValidityX2023-10-19T00:59:05.157000000ZlValidityTypeipns-signature:ipns-signature:�cTTL��eValueXA/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4hSequencehValidityX2023-10-19T00:59:05.157000000ZlValidityTypeF��׹������t[�2 WT�;�5�hcEOL/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei42023-10-19T00:59:05.157000000ZEOLF��׹������t[�2 WT�;�5�hc/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei42023-10-19T00:59:05.157000000Z
A/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4@��Qm�Φ�ڷ-1x�_�-�D?��s��%Y5Q8�
%Kf������?=;�* ��s"2023-10-19T00:59:05.157000000Z(0���/B@���x��V������7:p�2�2�%��}� Y�`�J�x���3�;�^͇��5G�J��cTTL��eValueXA/ipfs/bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4hSequencehValidityX2023-10-19T00:59:05.157000000ZlValidityType/ipns/ �oQ�9�1c��z�au2K��0jS�Lf1�0�JH�֘%V*�������2�������K���f�����������
                                                                                                           ���q����������C�������������������P�֘%V��֘%V�֘%V�
                                                                                                                                                         �֘%V�֘%V��֘%V�.C�%V����%VP�֘%Vh�֘%V��֘%V�4	��֘%V�֘%V�4	�֘%V��֘%V�a ر֘%V�֘%V��֘%VH�֘%VX/�����֘%`�֘%Vp�֘%V��֘%V���%V��֘%V��%V��֘%VX�֘%Vx�֘%��֘%V8�֘%VP�֘%V`�֘%V��������֘%V�4	��֘%V��֘%V��G֘%V���֘%Vس֘%V��֘%V�2��֘%V�	�֘%0C�%V����%VP�֘%V�֘%V�֘%V�-C�%V����8�֘%V��֘%V�֘%Vp�֘%V@�֘%V�֘%V�
                                                                                                                                                                                                 �֘%Vp�֘%V�֘%V�.C�%V���������4	%V�֘%V8�֘%�֘%V��֘%V��֘%V!4	��֘%V��֘%V'��ܲ�%V(,��֘%V�֘%V3)�/� �֘%V8�֘%VH�֘%VX/����֘%��֘%V��֘%V��֘%V6C%����ȷ֘%V�4	x�֘%V���,8�֘%V�4	h�֘%V�4	 �֘%V����h�֘%V?�8ܲ�%V8��֘%VA%V�.C�%V����%V%V�֘%V8�֘%V��֘%Vж֘%V�֘%V�-C�%V����%V%V��֘%V��֘%V(�֘%Vж֘%V
 H�֘%V��֘%V�֘%V�.C�%V6C����������֘%V��֘%Vp�֘%V��֘%Vt4	�֘%Vt�֘%V��֘%VH�֘%V�G֘%Vи֘%V~Y֘%V}))�֘%V@�֘%V}	P�֘%V����G��֘%Vh�֘%V�4	и֘%V�и֘%Vx�֘%VH�֘%V�ܲ�%V��֘%V�Y֘%V�)��֘%V�֘%V�	�֘%V����GX�֘%V(�֘%V�4	��֘%V���֘%V8�֘%VH�֘%V�G֘%VP�֘%V�Y�)%V`�֘%V��֘%V�	й֘%V����G�֘%V�֘%V�4	P�֘%V�P�֘%VȾ֘%VH�֘%V H֘%V`�֘%V�֘%V�4	��֘%V(�֘%V���ܲ�%V�,��֘%V��֘%V �֘%V��֘%V�	��֘%V�����֘%Vغ֘%V���֘%V�֘%V�4	��֘%V@�֘%V�4	P�֘%V��֘%V��(�֘%V@�֘%V��X�֘%V�4	��֘%V��֘%V�4	��֘%V��֘%V�,��֘%V��֘%V�)%V����֘%VȻ֘%V��֘%Vػ֘%Vh-C�%V��%�֘%V��֘%V��֘%V�֘%�֘%VH�֘%VX/���ȼ֘%x�֘%V��֘%V��֘%V�!��%V�)%V`�֘%�֘%V0�֘%V��;{����X�֘%V�	��֘%V�֘%$6��֘%V	��֘%V�	�֘%V��֘%V$6�֘%V	��֘%V�-C�%V����%V��֘%V �֘%V��֘%V�֘%Vн֘%�֘%V�.C�%V�!�֘%V,��֘%V�֘%Vh�֘%Vp4`�֘%Vp`�֘%V��֘%V�H֘%V��֘%V�X�=��G֘%V��֘%V�q[?�H֘%V��֘%V�gY	�E֘%V��֘%V�%V�G֘%V�֘%Vd�-%V H֘%VP�֘%V�,
%V�H֘%V��֘%Vgp�+%V�I֘%VQ�:�I֘%V��֘%V*Sd7%Vм֘%�֘%VHH֘%V`�֘%V��F                                    %VI֘%V`�֘%V�~I
%V%VX�֘%V�ܲ�%Vи֘%V.��2%V�ݲ�%V0�֘%VM�)%VH�֘%VHH֘%V��֘%V�֘%Vy4	P�֘%V��֘%V�4	��֘%V��֘%V~[��֘%V��֘%V�4	 �֘%V��֘%V����֘%V��֘%V�)[����֘%�֘%V�)��֘%V0�֘%V��֘%V@�֘%Vw	X�֘%V����G��֘%Vp�֘%V�4	��֘%V

packages/client/src/client.ts Outdated Show resolved Hide resolved
packages/client/test/index.spec.ts Show resolved Hide resolved
packages/server/src/routes/routing/v1/peers/get.ts Outdated Show resolved Hide resolved
packages/server/src/routes/routing/v1/providers/get.ts Outdated Show resolved Hide resolved
@hacdias
Copy link
Member Author

hacdias commented Oct 19, 2023

@lidel what is odd to me is that this is only happening on linux then, and looking at what you posted, it seems the odd bytes are also in other messages, not just the getIpns. Then why do those even work? Maybe the ndjson package ignores invalid json.

@lidel
Copy link
Member

lidel commented Oct 19, 2023

@hacdias I don't see windows and macos passing on CI – they get cancelled when linux fails, and linux is the fastest runtime.
Could it be fetch in NodeJS being broken again? (I don't see any explicit polyfill in tests, is it finally built-in?)

@hacdias
Copy link
Member Author

hacdias commented Oct 19, 2023

@lidel oh, I didn't notice. They all pass locally for me though so I'd assume at least macOS works well (Nodejs 18.18.2, same as CI)

@SgtPooki
Copy link
Member

Could it be fetch in NodeJS being broken again? (I don't see any explicit polyfill in tests, is it finally built-in?)

It is built in now, using https://github.com/nodejs/undici

@achingbrain
Copy link
Member

This is the cause of the CI failure: fastify/fastify#5118

@achingbrain achingbrain changed the title fix!: conform to Routing V1 HTTP spec fix!: conform to Delegated Routing V1 HTTP spec Oct 24, 2023
@achingbrain achingbrain merged commit 41e7902 into main Oct 25, 2023
31 checks passed
@achingbrain achingbrain deleted the routing-v1 branch October 25, 2023 17:10
github-actions bot pushed a commit that referenced this pull request Oct 25, 2023
## @helia/delegated-routing-v1-http-api-client-v1.0.0 (2023-10-25)

### ⚠ BREAKING CHANGES

* method signatures have changed to be closer to the delegated http routing v1 API spec

### Features

* initial import ([d49fff6](d49fff6))

### Bug Fixes

* conform to Delegated Routing V1 HTTP spec ([#41](#41)) ([41e7902](41e7902))

### Trivial Changes

* add project field to eslint config ([#40](#40)) ([7dac713](7dac713))
* fix deps ([9aa177d](9aa177d))
* **release:** 1.0.0 [skip ci] ([867feb8](867feb8))
* **release:** 1.0.1 [skip ci] ([7d3d708](7d3d708)), closes [#26](#26) [#8](#8)
* **release:** 1.0.2 [skip ci] ([8760907](8760907)), closes [#39](#39)

### Documentation

* update readmes and package descriptions ([11934bc](11934bc))

### Dependencies

* bump helia from 1.3.12 to 2.0.1 ([#26](#26)) ([9160281](9160281))
* **dev:** bump aegir from 39.0.13 to 40.0.8 ([#8](#8)) ([127bcc0](127bcc0))
* **dev:** bump aegir from 40.0.13 to 41.0.0 ([#39](#39)) ([c01a33e](c01a33e))
github-actions bot pushed a commit that referenced this pull request Oct 25, 2023
## @helia/delegated-routing-v1-http-api-server-v1.0.0 (2023-10-25)

### ⚠ BREAKING CHANGES

* method signatures have changed to be closer to the delegated http routing v1 API spec

### Features

* initial import ([d49fff6](d49fff6))

### Bug Fixes

* add CORS plugin ([5913f9d](5913f9d))
* conform to Delegated Routing V1 HTTP spec ([#41](#41)) ([41e7902](41e7902))

### Trivial Changes

* add project field to eslint config ([#40](#40)) ([7dac713](7dac713))
* fix deps ([9aa177d](9aa177d))
* **release:** 1.0.0 [skip ci] ([ed31f44](ed31f44))
* **release:** 1.0.1 [skip ci] ([4a7be80](4a7be80))
* **release:** 1.0.2 [skip ci] ([9b4b3e8](9b4b3e8)), closes [#26](#26) [#8](#8)
* **release:** 1.0.3 [skip ci] ([1aa75e3](1aa75e3)), closes [#39](#39)

### Documentation

* update readmes and package descriptions ([11934bc](11934bc))

### Dependencies

* bump helia from 1.3.12 to 2.0.1 ([#26](#26)) ([9160281](9160281))
* **dev:** bump aegir from 39.0.13 to 40.0.8 ([#8](#8)) ([127bcc0](127bcc0))
* **dev:** bump aegir from 40.0.13 to 41.0.0 ([#39](#39)) ([c01a33e](c01a33e))
* **dev:** bump sinon from 16.1.3 to 17.0.0 ([#42](#42)) ([43275c0](43275c0))
@BigLep BigLep mentioned this pull request Nov 9, 2023
11 tasks
github-actions bot pushed a commit that referenced this pull request Jun 20, 2024
## 1.0.0 (2024-06-20)

### ⚠ BREAKING CHANGES

* returns IPNS objects are from ipns@9.x.x
* bump multiformats from 12.1.3 to 13.0.0 (#75)
* method signatures have changed to be closer to the delegated http routing v1 API spec

### Features

* add support for libp2p ContentRouting and PeerRouting ([#44](#44)) ([ddfff1b](ddfff1b))
* allow skipping IPNS record validation ([#101](#101)) ([ec0ba89](ec0ba89))
* initial import ([d49fff6](d49fff6))

### Bug Fixes

* add CORS plugin ([5913f9d](5913f9d))
* conform to Delegated Routing V1 HTTP spec ([#41](#41)) ([41e7902](41e7902))
* conform to peer schema ([35f47da](35f47da))
* handle unparsable peer ids ([#118](#118)) ([9bdbe46](9bdbe46))
* increase listeners to silence node warnings ([#112](#112)) ([13f4084](13f4084))
* increase shutdown controller signal listeners ([#62](#62)) ([ab7afa7](ab7afa7))
* mark package as side-effect free ([551e0f2](551e0f2))
* PeerRecord Addrs and Protocols do not need to be optional ([#43](#43)) ([ec62768](ec62768))
* remove @helia/interface dep ([#59](#59)) ([aa8ffb8](aa8ffb8))

### Trivial Changes

* add or force update .github/workflows/js-test-and-release.yml ([#19](#19)) ([1af4a7a](1af4a7a))
* add project field to eslint config ([#40](#40)) ([7dac713](7dac713))
* add typedoc entry point ([5b16a12](5b16a12))
* delete templates [skip ci] ([#18](#18)) ([e1771ee](e1771ee))
* fix deps ([9aa177d](9aa177d))
* fix package name ([841d8f1](841d8f1))
* fix package name ([cd172da](cd172da))
* fix package name ([2c13d74](2c13d74))
* **release:** 1.0.0 [skip ci] ([a5b8290](a5b8290)), closes [#41](#41) [#40](#40) [#26](#26) [#8](#8) [#39](#39) [#26](#26) [#8](#8) [#39](#39) [#42](#42)
* **release:** 1.0.0 [skip ci] ([b027b54](b027b54)), closes [#41](#41) [#40](#40) [#26](#26) [#8](#8) [#39](#39) [#26](#26) [#8](#8) [#39](#39)
* **release:** 1.0.0 [skip ci] ([fd4871b](fd4871b))
* **release:** 1.0.0 [skip ci] ([867feb8](867feb8))
* **release:** 1.0.0 [skip ci] ([ed31f44](ed31f44))
* **release:** 1.0.1 [skip ci] ([39c92a5](39c92a5)), closes [#47](#47)
* **release:** 1.0.1 [skip ci] ([58d76be](58d76be)), closes [#43](#43)
* **release:** 1.0.1 [skip ci] ([7d3d708](7d3d708)), closes [#26](#26) [#8](#8)
* **release:** 1.0.1 [skip ci] ([4a7be80](4a7be80))
* **release:** 1.0.2 [skip ci] ([4214634](4214634)), closes [#48](#48)
* **release:** 1.0.2 [skip ci] ([8760907](8760907)), closes [#39](#39)
* **release:** 1.0.2 [skip ci] ([9b4b3e8](9b4b3e8)), closes [#26](#26) [#8](#8)
* **release:** 1.0.3 [skip ci] ([e8d3243](e8d3243)), closes [#49](#49)
* **release:** 1.0.3 [skip ci] ([1aa75e3](1aa75e3)), closes [#39](#39)
* **release:** 1.0.4 [skip ci] ([7e2bb0b](7e2bb0b)), closes [#58](#58)
* **release:** 1.0.5 [skip ci] ([5341fc1](5341fc1)), closes [#59](#59)
* **release:** 1.1.0 [skip ci] ([4f593ec](4f593ec)), closes [#44](#44) [#47](#47)
* **release:** 1.1.1 [skip ci] ([9ab3df4](9ab3df4)), closes [#58](#58)
* **release:** 1.1.2 [skip ci] ([1db87c0](1db87c0)), closes [#62](#62)
* **release:** 2.0.0 [skip ci] ([c9936ca](c9936ca)), closes [#75](#75) [#100](#100) [#75](#75) [#94](#94)
* **release:** 2.0.0 [skip ci] ([81281b6](81281b6)), closes [#75](#75) [#100](#100) [#75](#75) [#73](#73) [#77](#77) [#94](#94)
* **release:** 2.0.1 [skip ci] ([814f9ef](814f9ef)), closes [#91](#91)
* **release:** 2.0.1 [skip ci] ([7e4f169](7e4f169)), closes [#91](#91)
* **release:** 2.0.2 [skip ci] ([01f6b44](01f6b44))
* **release:** 2.0.3 [skip ci] ([0fdea42](0fdea42))
* **release:** 2.1.0 [skip ci] ([e3a2d8f](e3a2d8f)), closes [#101](#101)
* **release:** 3.0.0 [skip ci] ([be52e79](be52e79)), closes [#102](#102)
* **release:** 3.0.0 [skip ci] ([d2624dc](d2624dc)), closes [#102](#102)
* **release:** 3.0.1 [skip ci] ([a2f715a](a2f715a)), closes [#112](#112)
* **release:** 3.0.1 [skip ci] ([5f2faf6](5f2faf6)), closes [#104](#104)
* **release:** 3.0.2 [skip ci] ([6933d34](6933d34)), closes [#108](#108)
* **release:** 3.0.3 [skip ci] ([bfbba0f](bfbba0f)), closes [#112](#112)
* remove extra ci file ([#46](#46)) ([b130c17](b130c17))
* remove release from interop ([a3be11b](a3be11b))
* Update .github/pull_request_template.md [skip ci] ([c4fb76f](c4fb76f))
* Update .github/workflows/stale.yml [skip ci] ([30d5d80](30d5d80))
* Update .github/workflows/stale.yml [skip ci] ([a958569](a958569))
* Update .github/workflows/stale.yml [skip ci] ([b4f59b6](b4f59b6))
* update aegir ([c7c81b5](c7c81b5))
* update project config ([29bf459](29bf459))
* update project config ([#100](#100)) ([0bc6284](0bc6284))
* update sibling dependencies ([0c21765](0c21765))
* update sibling dependencies ([85cc65e](85cc65e))
* update sibling dependencies ([3fcc332](3fcc332))
* update sibling dependencies ([1b5d5dc](1b5d5dc))

### Documentation

* update project config and readmes ([#47](#47)) ([31eb6f7](31eb6f7))
* update readme examples to import correct symbols ([#58](#58)) ([bcfc785](bcfc785))
* update readmes and package descriptions ([11934bc](11934bc))

### Dependencies

* bump @fastify/cors from 8.5.0 to 9.0.1 ([#108](#108)) ([851b40f](851b40f))
* bump @libp2p/interface from 0.1.6 to 1.1.1 ([#91](#91)) ([50e4864](50e4864))
* bump helia from 1.3.12 to 2.0.1 ([#26](#26)) ([9160281](9160281))
* bump multiformats from 12.1.3 to 13.0.0 ([#75](#75)) ([1dabe16](1dabe16))
* bump p-queue from 7.4.1 to 8.0.1 ([#73](#73)) ([d575f73](d575f73))
* bump uint8arrays from 4.0.10 to 5.0.1 ([#77](#77)) ([e966c99](e966c99))
* **dev:** bump @helia/ipns from 5.0.0 to 6.0.0 ([#107](#107)) ([c4d9c8f](c4d9c8f))
* **dev:** bump @helia/ipns from 6.0.1 to 7.1.0 ([#110](#110)) ([bb10bf7](bb10bf7))
* **dev:** bump @types/sinon from 10.0.20 to 17.0.0 ([#49](#49)) ([c2d5bfb](c2d5bfb))
* **dev:** bump aegir from 39.0.13 to 40.0.8 ([#8](#8)) ([127bcc0](127bcc0))
* **dev:** bump aegir from 40.0.13 to 41.0.0 ([#39](#39)) ([c01a33e](c01a33e))
* **dev:** bump aegir from 41.3.5 to 42.1.1 ([#94](#94)) ([e34a142](e34a142))
* **dev:** bump helia from 3.0.1 to 4.0.0 ([#104](#104)) ([23cd638](23cd638))
* **dev:** bump sinon from 16.1.3 to 17.0.0 ([#42](#42)) ([43275c0](43275c0))
* **dev:** bump sinon-ts from 1.0.2 to 2.0.0 ([#48](#48)) ([7e0c7d3](7e0c7d3))
* update ipns to v9 ([#102](#102)) ([1097cb6](1097cb6))
* update sibling dependencies ([c2f7470](c2f7470))
* update sibling dependencies ([7d9cb15](7d9cb15))
Copy link

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this pull request Sep 15, 2024
## @helia/delegated-routing-v1-http-api-interop-v1.0.0 (2024-09-15)

### ⚠ BREAKING CHANGES

* upgrade to Helia 5.x.x and libp2p 2.x.x
* returns IPNS objects are from ipns@9.x.x
* bump multiformats from 12.1.3 to 13.0.0 (#75)
* method signatures have changed to be closer to the delegated http routing v1 API spec

### Features

* initial import ([d49fff6](d49fff6))

### Bug Fixes

* add CORS plugin ([5913f9d](5913f9d))
* conform to Delegated Routing V1 HTTP spec ([#41](#41)) ([41e7902](41e7902))
* handle unparsable peer ids ([#118](#118)) ([9bdbe46](9bdbe46))
* PeerRecord Addrs and Protocols do not need to be optional ([#43](#43)) ([ec62768](ec62768))

### Trivial Changes

* add project field to eslint config ([#40](#40)) ([7dac713](7dac713))
* add typedoc entry point ([5b16a12](5b16a12))
* fix deps ([9aa177d](9aa177d))
* fix package name ([841d8f1](841d8f1))
* fix package name ([cd172da](cd172da))
* fix package name ([2c13d74](2c13d74))
* **release:** 1.0.0 [skip ci] ([fd4871b](fd4871b))
* remove release from interop ([a3be11b](a3be11b))
* update aegir ([c7c81b5](c7c81b5))
* update sibling dependencies ([3fcc332](3fcc332))
* update sibling dependencies ([1b5d5dc](1b5d5dc))

### Documentation

* update project config and readmes ([#47](#47)) ([31eb6f7](31eb6f7))
* update readmes and package descriptions ([11934bc](11934bc))

### Dependencies

* bump @libp2p/interface from 0.1.6 to 1.1.1 ([#91](#91)) ([50e4864](50e4864))
* bump helia from 1.3.12 to 2.0.1 ([#26](#26)) ([9160281](9160281))
* bump multiformats from 12.1.3 to 13.0.0 ([#75](#75)) ([1dabe16](1dabe16))
* **dev:** bump @helia/ipns from 5.0.0 to 6.0.0 ([#107](#107)) ([c4d9c8f](c4d9c8f))
* **dev:** bump @helia/ipns from 6.0.1 to 7.1.0 ([#110](#110)) ([bb10bf7](bb10bf7))
* **dev:** bump aegir from 39.0.13 to 40.0.8 ([#8](#8)) ([127bcc0](127bcc0))
* **dev:** bump aegir from 40.0.13 to 41.0.0 ([#39](#39)) ([c01a33e](c01a33e))
* **dev:** bump aegir from 41.3.5 to 42.1.1 ([#94](#94)) ([e34a142](e34a142))
* **dev:** bump aegir from 43.0.3 to 44.1.1 ([#125](#125)) ([d01f77b](d01f77b))
* **dev:** bump helia from 3.0.1 to 4.0.0 ([#104](#104)) ([23cd638](23cd638))
* update ipns to v9 ([#102](#102)) ([1097cb6](1097cb6))
* update sibling dependencies ([c2f7470](c2f7470))
* update sibling dependencies ([7d9cb15](7d9cb15))
* upgrade to Helia 5.x.x and libp2p 2.x.x ([27101f3](27101f3))
Copy link

🎉 This PR is included in version @helia/delegated-routing-v1-http-api-interop-v1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants